class Net::Telnet
Attributes
output[R]
how to do this, without redefining the whole damn thing FIXME: we also need output (not sure I’m going to support this)
Public Instance Methods
redoxed_expect(options)
click to toggle source
# File lib/redoxed/input/telnet.rb, line 76 def redoxed_expect(options) model = @options["Model"] @log = @options["Log"] expects = [options[:expect]].flatten time_out = options[:timeout] || @options["Timeout"] || Redoxed.config.timeout? Timeout.timeout(time_out) do line = "" rest = "" buf = "" loop do c = @sock.readpartial(1024 * 1024) @output = c c = rest + c if Integer(c.rindex(/#{IAC}#{SE}/no) || 0) < Integer(c.rindex(/#{IAC}#{SB}/no) || 0) buf = preprocess(c[0...c.rindex(/#{IAC}#{SB}/no)]) rest = c[c.rindex(/#{IAC}#{SB}/no)..-1] elsif (pt = c.rindex(/#{IAC}[^#{IAC}#{AO}#{AYT}#{DM}#{IP}#{NOP}]?\z/no) || c.rindex(/\r\z/no)) buf = preprocess(c[0...pt]) rest = c[pt..-1] else buf = preprocess(c) rest = '' end if Redoxed.config.input.debug? @log.print buf @log.flush end line += buf line = model.expects line match = expects.find { |re| line.match re } return match if match end end end