зеркало из https://github.com/github/ruby.git
* lib/net/telnet.rb: This patch from Brian Candler adds a FailEOF mode which
can be activated to have net/telnet raise EOFError exceptions when the remote connection is closed. The default behavior remains unchanged though. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
7b2c68fd32
Коммит
582983c224
|
@ -523,10 +523,15 @@ module Net
|
|||
# value specified when this instance was created will be
|
||||
# used, or, failing that, the default value of 0 seconds,
|
||||
# which means not to wait for more input.
|
||||
# FailEOF:: if true, when the remote end closes the connection then an
|
||||
# EOFError will be raised. Otherwise, defaults to the old
|
||||
# behaviour that the function will return whatever data
|
||||
# has been received already, or nil if nothing was received.
|
||||
#
|
||||
def waitfor(options) # :yield: recvdata
|
||||
time_out = @options["Timeout"]
|
||||
waittime = @options["Waittime"]
|
||||
fail_eof = @options["FailEOF"]
|
||||
|
||||
if options.kind_of?(Hash)
|
||||
prompt = if options.has_key?("Match")
|
||||
|
@ -538,6 +543,7 @@ module Net
|
|||
end
|
||||
time_out = options["Timeout"] if options.has_key?("Timeout")
|
||||
waittime = options["Waittime"] if options.has_key?("Waittime")
|
||||
fail_eof = options["FailEOF"] if options.has_key?("FailEOF")
|
||||
else
|
||||
prompt = options
|
||||
end
|
||||
|
@ -589,6 +595,7 @@ module Net
|
|||
line += buf
|
||||
yield buf if block_given?
|
||||
rescue EOFError # End of file reached
|
||||
raise if fail_eof
|
||||
if line == ''
|
||||
line = nil
|
||||
yield nil if block_given?
|
||||
|
|
Загрузка…
Ссылка в новой задаче