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

Merged 16241 from trunk.

* lib/net/telnet.rb:  Fixing a bug where line endings would not be properly
  escaped when the two character ending was broken up into separate TCP
  packets.  Issue reported and patched by Brian Candler.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
jeg2 2008-04-30 11:23:15 +00:00
parent cd8aabdafa
commit 0fc23bda52
2 changed files with 18 additions and 3 deletions

View file

@ -1,3 +1,11 @@
Wed Apr 30 20:22:40 2008 James Edward Gray II <jeg2@ruby-lang.org>
Merged 16241 from trunk.
* lib/net/telnet.rb: Fixing a bug where line endings would not be properly
escaped when the two character ending was broken up into separate TCP
packets. Issue reported and patched by Brian Candler.
Wed Apr 30 17:47:21 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* re.c (rb_reg_search): use local variable. a patch from wanabe

View file

@ -559,7 +559,8 @@ module Net
Integer(c.rindex(/#{IAC}#{SB}/no))
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)
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
@ -571,9 +572,15 @@ module Net
#
# We cannot use preprocess() on this data, because that
# method makes some Telnetmode-specific assumptions.
buf = c
buf.gsub!(/#{EOL}/no, "\n") unless @options["Binmode"]
buf = rest + c
rest = ''
unless @options["Binmode"]
if pt = buf.rindex(/\r\z/no)
buf = buf[0 ... pt]
rest = buf[pt .. -1]
end
buf.gsub!(/#{EOL}/no, "\n")
end
end
@log.print(buf) if @options.has_key?("Output_log")
line += buf