Open3 and ssh

U

Une Bévue

I'm writing an app using RubyCocoa on MacOS X 10.4.11 which i want to
implement a Pseudo-terminal connected to a remote host via ssh.

When i test ssh from command line i get the waiting prompt and escape
sequences, login and logout messages.
But, testing with ruby, ssh no more sends the waiting prompt, nor escape
sequences and even no logout message.
I think this is because ssh "sees" my UI isn't a peudo-terminal even if
i make use of the option -T to force (?) allocation of it (before that i
got the known message "Pseudo-terminal will not be allocated because
stdin is not a terminal.").
And because i don't see any control characters, i think ssh "knows" my
UI isn't a pseudo-terminal from the beginning of the connection.

I suppose i need to implement "something" but i lak info on what and how
to do it. I suspect this is at a low level (tty?).

here is my ruby code :
------------------------------------------------------------------------
#! /usr/bin/env ruby

require 'open3'

ENV['TERM']="ansi"
ansi_red="\e[31m"
ansi_clear="\e[0m"

Open3.popen3("ssh -T TT") { |stdin, stdout, stderr|
Thread.start do
while c=STDIN.getc
stdin.print c.chr
end
end
Thread.start do
while line=stderr.gets
puts ansi_red+line.chomp+ansi_clear
end
end
while c=stdout.getc
print c.chr
# print any not printable control char (except \n and \r)
print "*** #{c} ***" if (c<32||c>127)&&(c!=10&&c!=13)
end
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,969
Messages
2,570,161
Members
46,709
Latest member
AustinMudi

Latest Threads

Top