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>
|
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
|
* 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);
|
MakeOpenFile(sock, fp);
|
||||||
fp->fd = fd;
|
fp->fd = fd;
|
||||||
fp->mode = FMODE_READWRITE|FMODE_DUPLEX;
|
fp->mode = FMODE_READWRITE|FMODE_DUPLEX;
|
||||||
#if defined(_WIN32) || defined(__CYGWIN__) || defined(__EMX__)
|
rb_io_binmode(sock);
|
||||||
fp->mode |= FMODE_BINMODE;
|
|
||||||
#endif
|
|
||||||
if (do_not_reverse_lookup) {
|
if (do_not_reverse_lookup) {
|
||||||
fp->mode |= FMODE_NOREVLOOKUP;
|
fp->mode |= FMODE_NOREVLOOKUP;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,4 +21,23 @@ assert false, "TODO: doesn't work on mswin32/64" if /mswin/ =~ RUBY_PLATFORM
|
||||||
th.kill
|
th.kill
|
||||||
th.join
|
th.join
|
||||||
end
|
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)
|
end if defined?(TCPSocket)
|
||||||
|
|
Loading…
Reference in a new issue