mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/socket/socket.c (init_sock): sockets should be binmode.
* test/socket/test_tcp.rb (test_encoding): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
68222eb417
commit
5545c5aafa
3 changed files with 26 additions and 3 deletions
|
@ -1,3 +1,9 @@
|
|||
Fri Oct 17 11:48:18 2008 Shugo Maeda <shugo@ruby-lang.org>
|
||||
|
||||
* ext/socket/socket.c (init_sock): sockets should be binmode.
|
||||
|
||||
* test/socket/test_tcp.rb (test_encoding): ditto.
|
||||
|
||||
Fri Oct 17 10:26:13 2008 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||
|
||||
* tool/insns2vm.rb: remove -Kn option in shebang line because it's
|
||||
|
|
|
@ -241,9 +241,7 @@ init_sock(VALUE sock, int fd)
|
|||
MakeOpenFile(sock, fp);
|
||||
fp->fd = fd;
|
||||
fp->mode = FMODE_READWRITE|FMODE_DUPLEX;
|
||||
#if defined(_WIN32) || defined(__CYGWIN__) || defined(__EMX__)
|
||||
fp->mode |= FMODE_BINMODE;
|
||||
#endif
|
||||
rb_io_binmode(sock);
|
||||
if (do_not_reverse_lookup) {
|
||||
fp->mode |= FMODE_NOREVLOOKUP;
|
||||
}
|
||||
|
|
|
@ -21,4 +21,23 @@ assert false, "TODO: doesn't work on mswin32/64" if /mswin/ =~ RUBY_PLATFORM
|
|||
th.kill
|
||||
th.join
|
||||
end
|
||||
|
||||
def test_encoding
|
||||
svr = TCPServer.new("localhost", 0)
|
||||
th = Thread.new {
|
||||
c = svr.accept
|
||||
c.write "foo\r\n"
|
||||
c.close
|
||||
}
|
||||
addr = svr.addr
|
||||
sock = TCPSocket.open(addr[2], addr[1])
|
||||
assert_equal(true, sock.binmode?)
|
||||
s = sock.gets
|
||||
assert_equal("foo\r\n", s)
|
||||
assert_equal(Encoding.find("ASCII-8BIT"), s.encoding)
|
||||
ensure
|
||||
th.kill
|
||||
th.join
|
||||
sock.close if sock
|
||||
end
|
||||
end if defined?(TCPSocket)
|
||||
|
|
Loading…
Reference in a new issue