1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Tue Jun 20 06:14:43 2000 Wakou Aoyama <wakou@fsinet.or.jp>

* lib/cgi.rb: change: version syntax. old: x.yz, now: x.y.z

        * lib/net/telnet.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
wakou 2000-06-19 21:18:41 +00:00
parent b8148f4594
commit ca3afdb861
3 changed files with 766 additions and 863 deletions

View file

@ -1,3 +1,9 @@
Tue Jun 20 06:14:43 2000 Wakou Aoyama <wakou@fsinet.or.jp>
* lib/cgi.rb: change: version syntax. old: x.yz, now: x.y.z
* lib/net/telnet.rb: ditto.
Mon Jun 19 10:48:28 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
* variable.c (rb_cvar_set): forgot to add security check for class

1077
lib/cgi.rb

File diff suppressed because it is too large Load diff

View file

@ -1,31 +1,30 @@
=begin
$Date$
== SIMPLE TELNET CLIENT LIBRARY
net/telnet.rb
Version 1.40
Version 1.5.0
Wakou Aoyama <wakou@fsinet.or.jp>
=== MAKE NEW TELNET OBJECT
host = Net::Telnet::new({
"Binmode" => false, # default: false
"Host" => "localhost", # default: "localhost"
"Output_log" => "output_log", # default: nil (no output)
"Dump_log" => "dump_log", # default: nil (no output)
"Port" => 23, # default: 23
"Prompt" => /[$%#>] \z/n, # default: /[$%#>] \z/n
"Telnetmode" => true, # default: true
"Timeout" => 10, # default: 10
# if ignore timeout then set "Timeout" to false.
"Waittime" => 0, # default: 0
"Proxy" => proxy # default: nil
# proxy is Net::Telnet or IO object
})
host = Net::Telnet::new({
"Binmode" => false, # default: false
"Host" => "localhost", # default: "localhost"
"Output_log" => "output_log", # default: nil (no output)
"Dump_log" => "dump_log", # default: nil (no output)
"Port" => 23, # default: 23
"Prompt" => /[$%#>] \z/n, # default: /[$%#>] \z/n
"Telnetmode" => true, # default: true
"Timeout" => 10, # default: 10
# if ignore timeout then set "Timeout" to false.
"Waittime" => 0, # default: 0
"Proxy" => proxy # default: nil
# proxy is Net::Telnet or IO object
})
Telnet object has socket class methods.
@ -34,351 +33,132 @@ if set "Telnetmode" option to false. not telnet command interpretation.
the same character as "Prompt" is included in the data, and, when
the network or the host is very heavy, the value is enlarged.
=== STATUS OUTPUT
host = Net::Telnet::new({"Host" => "localhost"}){|c| print c }
host = Net::Telnet::new({"Host" => "localhost"}){|c| print c }
connection status output.
example
example:
Trying localhost...
Connected to localhost.
Trying localhost...
Connected to localhost.
=== WAIT FOR MATCH
line = host.waitfor(/match/)
line = host.waitfor({"Match" => /match/,
"String" => "string",
"Timeout" => secs})
# if ignore timeout then set "Timeout" to false.
line = host.waitfor(/match/)
line = host.waitfor({"Match" => /match/,
"String" => "string",
"Timeout" => secs})
# if ignore timeout then set "Timeout" to false.
if set "String" option, then Match == Regexp.new(quote("string"))
==== REALTIME OUTPUT
host.waitfor(/match/){|c| print c }
host.waitfor({"Match" => /match/,
"String" => "string",
"Timeout" => secs}){|c| print c}
host.waitfor(/match/){|c| print c }
host.waitfor({"Match" => /match/,
"String" => "string",
"Timeout" => secs}){|c| print c}
of cource, set sync=true or flush is necessary.
=== SEND STRING AND WAIT PROMPT
line = host.cmd("string")
line = host.cmd({"String" => "string",
"Prompt" => /[$%#>] \z/n,
"Timeout" => 10})
line = host.cmd("string")
line = host.cmd({"String" => "string",
"Prompt" => /[$%#>] \z/n,
"Timeout" => 10})
==== REALTIME OUTPUT
host.cmd("string"){|c| print c }
host.cmd({"String" => "string",
"Prompt" => /[$%#>] \z/n,
"Timeout" => 10}){|c| print c }
host.cmd("string"){|c| print c }
host.cmd({"String" => "string",
"Prompt" => /[$%#>] \z/n,
"Timeout" => 10}){|c| print c }
of cource, set sync=true or flush is necessary.
=== SEND STRING
host.print("string")
# == host.write("string\n")
host.print("string")
# == host.write("string\n")
=== TOGGLE TELNET COMMAND INTERPRETATION
host.telnetmode # return the current status (true or false)
host.telnetmode = true # do telnet command interpretation (default)
host.telnetmode = false # don't telnet command interpretation
host.telnetmode # return the current status (true or false)
host.telnetmode = true # do telnet command interpretation (default)
host.telnetmode = false # don't telnet command interpretation
=== TOGGLE NEWLINE TRANSLATION
host.binmode # return the current status (true or false)
host.binmode = true # no translate newline
host.binmode = false # translate newline (default)
host.binmode # return the current status (true or false)
host.binmode = true # no translate newline
host.binmode = false # translate newline (default)
=== LOGIN
host.login("username", "password")
host.login({"Name" => "username",
"Password" => "password",
"Prompt" => /[$%#>] \z/n,
"Timeout" => 10})
host.login("username", "password")
host.login({"Name" => "username",
"Password" => "password",
"Prompt" => /[$%#>] \z/n,
"Timeout" => 10})
if no password prompt.
if no password prompt:
host.login("username")
host.login({"Name" => "username",
"Prompt" => /[$%#>] \z/n,
"Timeout" => 10})
host.login("username")
host.login({"Name" => "username",
"Prompt" => /[$%#>] \z/n,
"Timeout" => 10})
==== REALTIME OUTPUT
host.login("username", "password"){|c| print c }
host.login({"Name" => "username",
"Password" => "password",
"Prompt" => /[$%#>] \z/n,
"Timeout" => 10}){|c| print c }
host.login("username", "password"){|c| print c }
host.login({"Name" => "username",
"Password" => "password",
"Prompt" => /[$%#>] \z/n,
"Timeout" => 10}){|c| print c }
of cource, set sync=true or flush is necessary.
== EXAMPLE
=== LOGIN AND SEND COMMAND
localhost = Net::Telnet::new({"Host" => "localhost",
"Timeout" => 10,
"Prompt" => /[$%#>] \z/n})
localhost.login("username", "password"){|c| print c }
localhost.cmd("command"){|c| print c }
localhost.close
localhost = Net::Telnet::new({"Host" => "localhost",
"Timeout" => 10,
"Prompt" => /[$%#>] \z/n})
localhost.login("username", "password"){|c| print c }
localhost.cmd("command"){|c| print c }
localhost.close
=== CHECKS A POP SERVER TO SEE IF YOU HAVE MAIL
pop = Net::Telnet::new({"Host" => "your_destination_host_here",
"Port" => 110,
"Telnetmode" => false,
"Prompt" => /^\+OK/n})
pop.cmd("user " + "your_username_here"){|c| print c}
pop.cmd("pass " + "your_password_here"){|c| print c}
pop.cmd("list"){|c| print c}
pop = Net::Telnet::new({"Host" => "your_destination_host_here",
"Port" => 110,
"Telnetmode" => false,
"Prompt" => /^\+OK/n})
pop.cmd("user " + "your_username_here"){|c| print c}
pop.cmd("pass " + "your_password_here"){|c| print c}
pop.cmd("list"){|c| print c}
== HISTORY
=== Version 1.40
2000/05/24 06:57:38
- improve: binmode(), telnetmode() interface
thanks to Dave Thomas <Dave@thomases.com>
=== Version 1.32
2000/05/09 22:02:56
- require English.rb
=== Version 1.31
2000/05/02 21:48:39
- Proxy option: can receive IO object
=== Version 1.30
2000/04/03 18:27:02
- telnet.rb --> net/telnet.rb
=== Version 1.20
2000/01/24 17:02:57
- respond to "IAC WILL x" with "IAC DONT x"
- respond to "IAC WONT x" with "IAC DONT x"
- better dumplog format
thanks to WATANABE Hirofumi <Hirofumi.Watanabe@jp.sony.com>
=== Version 1.10
2000/01/18 17:47:31
- bug fix: write method
- respond to "IAC WILL BINARY" with "IAC DO BINARY"
=== Version 1.00
1999/10/04 22:51:26
- bug fix: waitfor(preprocess) method
thanks to Shin-ichiro Hara <sinara@blade.nagaokaut.ac.jp>
- add simple support for AO, DM, IP, NOP, SB, SE
- COUTION! TimeOut --> TimeoutError
=== Version 0.50
1999/09/21 21:24:07
- add write method
=== Version 0.40
1999/09/17 17:41:41
- bug fix: preprocess method
=== Version 0.30
1999/09/14 23:09:05
- change prompt check order.
not IO::select([@sock], nil, nil, waittime) and prompt === line
--> prompt === line and not IO::select([@sock], nil, nil, waittime)
=== Version 0.24
1999/09/13 22:28:33
- Telnet#login
if ommit password, then not require password prompt.
=== Version 0.232
1999/08/10 05:20:21
- STATUS OUTPUT sample code typo. thanks to Tadayoshi Funaba <tadf@kt.rim.or.jp>
host = Telnet.new({"Hosh" => "localhost"){|c| print c }
--> host = Telnet.new({"Host" => "localhost"){|c| print c }
=== Version 0.231
1999/07/16 13:39:42
- TRUE --> true, FALSE --> false
=== Version 0.23
1999/07/15 22:32:09
- waitfor: if end of file reached, then return nil.
=== Version 0.22
1999/06/29 09:08:51
- new, waitfor, cmd: {"Timeout" => false} # ignore timeout
=== Version 0.21
1999/06/28 18:18:55
- waitfor: not rescue (EOFError)
=== Version 0.20
1999/06/04 06:24:58
- waitfor: support for divided telnet command
=== Version 0.181
1999/05/22
- bug fix: print method
=== Version 0.18
1999/05/14
- respond to "IAC WON'T SGA" with "IAC DON'T SGA"
- DON'T SGA : end of line --> CR + LF
- bug fix: preprocess method
=== Version 0.17
1999/04/30
- bug fix: $! + "\n" --> $!.to_s + "\n"
=== Version 0.163
1999/04/11
- STDOUT.write(message) --> yield(message) if iterator?
=== Version 0.162
1999/03/17
- add "Proxy" option
- required timeout.rb
=== Version 0.161
1999/02/03
- select --> IO::select
=== Version 0.16
1998/10/09
- preprocess method change for the better
- add binmode method.
- change default Binmode. TRUE --> FALSE
=== Version 0.15
1998/10/04
- add telnetmode method.
=== Version 0.141
1998/09/22
- change default prompt. /[$%#>] $/ --> /[$%#>] \Z/
=== Version 0.14
1998/09/01
- IAC WILL SGA send EOL --> CR+NULL
- IAC WILL SGA IAC DO BIN send EOL --> CR
- NONE send EOL --> LF
- add Dump_log option.
=== Version 0.13
1998/08/25
- add print method.
=== Version 0.122
1998/08/05
- support for HP-UX 10.20 thanks to WATANABE Tetsuya <tetsu@jpn.hp.com>
- socket.<< --> socket.write
=== Version 0.121
1998/07/15
- string.+= --> string.concat
=== Version 0.12
1998/06/01
- add timeout, waittime.
=== Version 0.11
1998/04/21
- add realtime output.
=== Version 0.10
1998/04/13
- first release.
=end
require "socket"
require "delegate"
require "timeout"
@ -455,11 +235,10 @@ module Net
CR = "\015"
LF = "\012"
EOL = CR + LF
v = $-v
$-v = false
VERSION = "1.40"
RELEASE_DATE = "$Date$"
$-v = v
VERSION = "1.5.0"
RELEASE_DATE = "2000-06-19"
VERSION_CODE = 150
RELEASE_CODE = 20000619
def initialize(options)
@options = options
@ -799,3 +578,170 @@ module Net
end
end
=begin
== HISTORY
* Sun Jun 18 23:31:44 JST 2000 - wakou
* version 1.5.0
* change: version syntax. old: x.yz, now: x.y.z
* 2000/05/24 06:57:38 - wakou
* version 1.40
* improve: binmode(), telnetmode() interface.
thanks to Dave Thomas <Dave@thomases.com>
* 2000/05/09 22:02:56 - wakou
* version 1.32
* require English.rb
* 2000/05/02 21:48:39 - wakou
* version 1.31
* Proxy option: can receive IO object.
* 2000/04/03 18:27:02 - wakou
* version 1.30
* telnet.rb --> net/telnet.rb
* 2000/01/24 17:02:57 - wakou
* version 1.20
* respond to "IAC WILL x" with "IAC DONT x"
* respond to "IAC WONT x" with "IAC DONT x"
* better dumplog format.
thanks to WATANABE Hirofumi <Hirofumi.Watanabe@jp.sony.com>
* 2000/01/18 17:47:31 - wakou
* version 1.10
* bug fix: write method
* respond to "IAC WILL BINARY" with "IAC DO BINARY"
* 1999/10/04 22:51:26 - wakou
* version 1.00
* bug fix: waitfor(preprocess) method.
thanks to Shin-ichiro Hara <sinara@blade.nagaokaut.ac.jp>
* add simple support for AO, DM, IP, NOP, SB, SE
* COUTION! TimeOut --> TimeoutError
* 1999/09/21 21:24:07 - wakou
* version 0.50
* add write method
* 1999/09/17 17:41:41 - wakou
* version 0.40
* bug fix: preprocess method
* 1999/09/14 23:09:05 - wakou
* version 0.30
* change prompt check order.
not IO::select([@sock], nil, nil, waittime) and prompt === line
--> prompt === line and not IO::select([@sock], nil, nil, waittime)
* 1999/09/13 22:28:33 - wakou
* version 0.24
* Telnet#login: if ommit password, then not require password prompt.
* 1999/08/10 05:20:21 - wakou
* version 0.232
* STATUS OUTPUT sample code typo.
thanks to Tadayoshi Funaba <tadf@kt.rim.or.jp>
host = Telnet.new({"Hosh" => "localhost"){|c| print c }
--> host = Telnet.new({"Host" => "localhost"){|c| print c }
* 1999/07/16 13:39:42 - wakou
* version 0.231
* TRUE --> true, FALSE --> false
* 1999/07/15 22:32:09 - wakou
* version 0.23
* waitfor: if end of file reached, then return nil.
* 1999/06/29 09:08:51 - wakou
* version 0.22
* new, waitfor, cmd: {"Timeout" => false} # ignore timeout
* 1999/06/28 18:18:55 - wakou
* version 0.21
* waitfor: not rescue (EOFError)
* 1999/06/04 06:24:58 - wakou
* version 0.20
* waitfor: support for divided telnet command
* 1999/05/22 - wakou
* version 0.181
* bug fix: print method
* 1999/05/14 - wakou
* version 0.18
* respond to "IAC WON'T SGA" with "IAC DON'T SGA"
* DON'T SGA : end of line --> CR + LF
* bug fix: preprocess method
* 1999/04/30 - wakou
* version 0.17
* bug fix: $! + "\n" --> $!.to_s + "\n"
* 1999/04/11 - wakou
* version 0.163
* STDOUT.write(message) --> yield(message) if iterator?
* 1999/03/17 - wakou
* version 0.162
* add "Proxy" option
* required timeout.rb
* 1999/02/03 - wakou
* version 0.161
* select --> IO::select
* 1998/10/09 - wakou
* version 0.16
* preprocess method change for the better
* add binmode method.
* change default Binmode. TRUE --> FALSE
* 1998/10/04 - wakou
* version 0.15
* add telnetmode method.
* 1998/09/22 - wakou
* version 0.141
* change default prompt. /[$%#>] $/ --> /[$%#>] \Z/
* 1998/09/01 - wakou
* version 0.14
* IAC WILL SGA send EOL --> CR+NULL
* IAC WILL SGA IAC DO BIN send EOL --> CR
* NONE send EOL --> LF
* add Dump_log option.
* 1998/08/25 - wakou
* version 0.13
* add print method.
* 1998/08/05 - wakou
* version 0.122
* support for HP-UX 10.20.
thanks to WATANABE Tetsuya <tetsu@jpn.hp.com>
* socket.<< --> socket.write
* 1998/07/15 - wakou
* version 0.121
* string.+= --> string.concat
* 1998/06/01 - wakou
* version 0.12
* add timeout, waittime.
* 1998/04/21 - wakou
* version 0.11
* add realtime output.
* 1998/04/13 - wakou
* version 0.10
* first release.
$Date$
=end