diff options
| author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-02-03 14:50:50 +0000 |
|---|---|---|
| committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-02-03 14:50:50 +0000 |
| commit | 5bac294c115ef1a33e30d285117aa92db848a36b (patch) | |
| tree | 7e103b1db2d99b3cc800a2b3b81e932295721252 /test/socket/test_socket.rb | |
| parent | f649bd1c487323896b0e72cb428e8e4b156a5cf8 (diff) | |
| download | ruby-5bac294c115ef1a33e30d285117aa92db848a36b.tar.gz ruby-5bac294c115ef1a33e30d285117aa92db848a36b.tar.xz ruby-5bac294c115ef1a33e30d285117aa92db848a36b.zip | |
don't connect to unspecified address.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/socket/test_socket.rb')
| -rw-r--r-- | test/socket/test_socket.rb | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/test/socket/test_socket.rb b/test/socket/test_socket.rb index 6f6bbb62e..43c9fee11 100644 --- a/test/socket/test_socket.rb +++ b/test/socket/test_socket.rb @@ -73,10 +73,20 @@ class TestSocket < Test::Unit::TestCase } end + def tcp_unspecified_to_loopback(addrinfo) + if addrinfo.ipv4? && addrinfo.ip_address == "0.0.0.0" + AddrInfo.tcp("127.0.0.1", addrinfo.ip_port) + elsif addrinfo.ipv6? && addrinfo.ipv6_unspecified? + AddrInfo.tcp("::1", addrinfo.ip_port) + else + addrinfo + end + end + def test_tcp TCPServer.open(0) {|serv| - port, addr = Socket.unpack_sockaddr_in(serv.getsockname) - Socket.tcp(addr, port) {|s1| + addr = tcp_unspecified_to_loopback(serv.local_address) + addr.connect {|s1| s2 = serv.accept begin assert_equal(s2.remote_address.ip_unpack, s1.local_address.ip_unpack) @@ -168,7 +178,8 @@ class TestSocket < Test::Unit::TestCase tcp_servers = Socket.tcp_server_sockets(0) unix_server = Socket.unix_server_socket("#{tmpdir}/sock") tcp_servers.each {|s| - clients << s.local_address.connect + addr = tcp_unspecified_to_loopback(s.local_address) + clients << addr.connect } clients << unix_server.local_address.connect Socket.accept_loop(tcp_servers, unix_server) {|s| |
