net/protocol: use binary string buffers
Not an encoding expert, but this seems necessary for the next change. All of the IO#read, IO#read_nonblock and related methods will return a binary string when given a length argument; so anything appended to these buffers via << will be binary. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
7fd1183467
commit
816efa9ae1
@ -84,7 +84,7 @@ module Net # :nodoc:
|
||||
@read_timeout = read_timeout
|
||||
@continue_timeout = continue_timeout
|
||||
@debug_output = debug_output
|
||||
@rbuf = ''.dup
|
||||
@rbuf = ''.b
|
||||
end
|
||||
|
||||
attr_reader :io
|
||||
@ -114,7 +114,7 @@ module Net # :nodoc:
|
||||
|
||||
public
|
||||
|
||||
def read(len, dest = ''.dup, ignore_eof = false)
|
||||
def read(len, dest = ''.b, ignore_eof = false)
|
||||
LOG "reading #{len} bytes..."
|
||||
read_bytes = 0
|
||||
begin
|
||||
@ -134,7 +134,7 @@ module Net # :nodoc:
|
||||
dest
|
||||
end
|
||||
|
||||
def read_all(dest = ''.dup)
|
||||
def read_all(dest = ''.b)
|
||||
LOG 'reading all...'
|
||||
read_bytes = 0
|
||||
begin
|
||||
@ -193,7 +193,7 @@ module Net # :nodoc:
|
||||
def rbuf_consume(len)
|
||||
if len == @rbuf.size
|
||||
s = @rbuf
|
||||
@rbuf = ''.dup
|
||||
@rbuf = ''.b
|
||||
else
|
||||
s = @rbuf.slice!(0, len)
|
||||
end
|
||||
@ -340,7 +340,7 @@ module Net # :nodoc:
|
||||
end
|
||||
|
||||
def using_each_crlf_line
|
||||
@wbuf = ''.dup
|
||||
@wbuf = ''.b
|
||||
yield
|
||||
if not @wbuf.empty? # unterminated last line
|
||||
write0 dot_stuff(@wbuf.chomp) + "\r\n"
|
||||
|
Loading…
x
Reference in New Issue
Block a user