mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
19990922
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
70a444b0cc
commit
8aad024e3a
11 changed files with 109 additions and 35 deletions
|
@ -1,11 +1,11 @@
|
|||
=begin
|
||||
$Date: 1999/09/17 17:41:41 $
|
||||
$Date: 1999/09/21 21:24:07 $
|
||||
|
||||
== SIMPLE TELNET CLIANT LIBRARY
|
||||
|
||||
telnet.rb
|
||||
|
||||
Version 0.40
|
||||
Version 0.50
|
||||
|
||||
Wakou Aoyama <wakou@fsinet.or.jp>
|
||||
|
||||
|
@ -86,6 +86,7 @@ of cource, set sync=true or flush is necessary.
|
|||
=== SEND STRING
|
||||
|
||||
host.print("string")
|
||||
# == host.write("string\n")
|
||||
|
||||
|
||||
=== TURN TELNET COMMAND INTERPRETATION
|
||||
|
@ -154,6 +155,12 @@ of cource, set sync=true or flush is necessary.
|
|||
|
||||
== HISTORY
|
||||
|
||||
=== Version 0.50
|
||||
|
||||
1999/09/21 21:24:07
|
||||
|
||||
- add write method
|
||||
|
||||
=== Version 0.40
|
||||
|
||||
1999/09/17 17:41:41
|
||||
|
@ -398,8 +405,8 @@ class Telnet < SimpleDelegator
|
|||
EOL = CR + LF
|
||||
v = $-v
|
||||
$-v = false
|
||||
VERSION = "0.40"
|
||||
RELEASE_DATE = "$Date: 1999/09/17 17:41:41 $"
|
||||
VERSION = "0.50"
|
||||
RELEASE_DATE = "$Date: 1999/09/21 21:24:07 $"
|
||||
$-v = v
|
||||
|
||||
def initialize(options)
|
||||
|
@ -503,33 +510,33 @@ $-v = v
|
|||
if IAC == $1 # handle escaped IAC characters
|
||||
IAC
|
||||
elsif AYT == $1 # respond to "IAC AYT" (are you there)
|
||||
@sock.write("nobody here but us pigeons" + EOL)
|
||||
self.write("nobody here but us pigeons" + EOL)
|
||||
''
|
||||
elsif DO[0] == $1[0] # respond to "IAC DO x"
|
||||
if OPT_BINARY[0] == $1[1]
|
||||
@telnet_option["BINARY"] = true
|
||||
@sock.write(IAC + WILL + OPT_BINARY)
|
||||
self.write(IAC + WILL + OPT_BINARY)
|
||||
else
|
||||
@sock.write(IAC + WONT + $1[1..1])
|
||||
self.write(IAC + WONT + $1[1..1])
|
||||
end
|
||||
''
|
||||
elsif DONT[0] == $1[0] # respond to "IAC DON'T x" with "IAC WON'T x"
|
||||
@sock.write(IAC + WONT + $1[1..1])
|
||||
self.write(IAC + WONT + $1[1..1])
|
||||
''
|
||||
elsif WILL[0] == $1[0] # respond to "IAC WILL x"
|
||||
if OPT_ECHO[0] == $1[1]
|
||||
@sock.write(IAC + DO + OPT_ECHO)
|
||||
self.write(IAC + DO + OPT_ECHO)
|
||||
elsif OPT_SGA[0] == $1[1]
|
||||
@telnet_option["SGA"] = true
|
||||
@sock.write(IAC + DO + OPT_SGA)
|
||||
self.write(IAC + DO + OPT_SGA)
|
||||
end
|
||||
''
|
||||
elsif WONT[0] == $1[0] # respond to "IAC WON'T x"
|
||||
if OPT_ECHO[0] == $1[1]
|
||||
@sock.write(IAC + DONT + OPT_ECHO)
|
||||
self.write(IAC + DONT + OPT_ECHO)
|
||||
elsif OPT_SGA[0] == $1[1]
|
||||
@telnet_option["SGA"] = false
|
||||
@sock.write(IAC + DONT + OPT_SGA)
|
||||
self.write(IAC + DONT + OPT_SGA)
|
||||
end
|
||||
''
|
||||
end
|
||||
|
@ -591,6 +598,14 @@ $-v = v
|
|||
line
|
||||
end
|
||||
|
||||
def write(string)
|
||||
length = string.length
|
||||
while 0 < length
|
||||
IO::select(nil, [@sock])
|
||||
length -= @sock.syswrite(string)
|
||||
end
|
||||
end
|
||||
|
||||
def print(string)
|
||||
str = string.dup + "\n"
|
||||
|
||||
|
@ -609,7 +624,7 @@ $-v = v
|
|||
end
|
||||
end
|
||||
|
||||
@sock.write(str)
|
||||
self.write(str)
|
||||
end
|
||||
|
||||
def cmd(options)
|
||||
|
@ -624,7 +639,6 @@ $-v = v
|
|||
string = options
|
||||
end
|
||||
|
||||
IO::select(nil, [@sock])
|
||||
self.print(string)
|
||||
if iterator?
|
||||
waitfor({"Prompt" => match, "Timeout" => time_out}){|c| yield c }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue