ruby-changes:13472
From: akr <ko1@a...>
Date: Wed, 7 Oct 2009 00:31:40 +0900 (JST)
Subject: [ruby-changes:13472] Ruby:r25246 (ruby_1_8, trunk): * lib/resolv.rb (Resolv::DNS.bind_random_port): bind to "::" for IPv6.
akr 2009-10-07 00:31:22 +0900 (Wed, 07 Oct 2009) New Revision: 25246 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25246 Log: * lib/resolv.rb (Resolv::DNS.bind_random_port): bind to "::" for IPv6. (Resolv::DNS::ConnectedUDP#initialize): specify is_ipv6 argument of bind_random_port. [ruby-core:25970] Modified files: branches/ruby_1_8/ChangeLog branches/ruby_1_8/lib/resolv.rb trunk/ChangeLog trunk/lib/resolv.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 25245) +++ ChangeLog (revision 25246) @@ -1,3 +1,10 @@ +Wed Oct 7 00:27:01 2009 Tanaka Akira <akr@f...> + + * lib/resolv.rb (Resolv::DNS.bind_random_port): bind to "::" for IPv6. + (Resolv::DNS::ConnectedUDP#initialize): specify is_ipv6 argument of + bind_random_port. + [ruby-core:25970] + Tue Oct 6 21:30:58 2009 Tanaka Akira <akr@f...> * io.c (io_reopen): avoid close if possible. Index: lib/resolv.rb =================================================================== --- lib/resolv.rb (revision 25245) +++ lib/resolv.rb (revision 25246) @@ -599,10 +599,10 @@ } end - def self.bind_random_port(udpsock) # :nodoc: + def self.bind_random_port(udpsock, is_ipv6=false) # :nodoc: begin port = rangerand(1024..65535) - udpsock.bind("", port) + udpsock.bind(is_ipv6 ? "::" : "", port) rescue Errno::EADDRINUSE retry end @@ -699,8 +699,9 @@ super() @host = host @port = port - @sock = UDPSocket.new(host.index(':') ? Socket::AF_INET6 : Socket::AF_INET) - DNS.bind_random_port(@sock) + is_ipv6 = host.index(':') + @sock = UDPSocket.new(is_ipv6 ? Socket::AF_INET6 : Socket::AF_INET) + DNS.bind_random_port(@sock, is_ipv6) @sock.connect(host, port) @sock.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) if defined? Fcntl::F_SETFD end Index: ruby_1_8/ChangeLog =================================================================== --- ruby_1_8/ChangeLog (revision 25245) +++ ruby_1_8/ChangeLog (revision 25246) @@ -1,3 +1,10 @@ +Wed Oct 7 00:27:01 2009 Tanaka Akira <akr@f...> + + * lib/resolv.rb (Resolv::DNS.bind_random_port): bind to "::" for IPv6. + (Resolv::DNS::ConnectedUDP#initialize): specify is_ipv6 argument of + bind_random_port. + [ruby-core:25970] + Tue Oct 6 06:26:00 2009 Hidetoshi NAGAI <nagai@a...> * * ext/tk/lib/tk/canvas.rb: *** POTENTIALLY INCOMPATIBLE *** Index: ruby_1_8/lib/resolv.rb =================================================================== --- ruby_1_8/lib/resolv.rb (revision 25245) +++ ruby_1_8/lib/resolv.rb (revision 25246) @@ -592,10 +592,10 @@ } end - def self.bind_random_port(udpsock) # :nodoc: + def self.bind_random_port(udpsock, is_ipv6=false) # :nodoc: begin port = rangerand(1024..65535) - udpsock.bind("", port) + udpsock.bind(is_ipv6 ? "::" : "", port) rescue Errno::EADDRINUSE retry end @@ -692,8 +692,9 @@ super() @host = host @port = port - @sock = UDPSocket.new(host.index(':') ? Socket::AF_INET6 : Socket::AF_INET) - DNS.bind_random_port(@sock) + is_ipv6 = host.index(':') + @sock = UDPSocket.new(is_ipv6 ? Socket::AF_INET6 : Socket::AF_INET) + DNS.bind_random_port(@sock, is_ipv6) @sock.connect(host, port) @sock.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) if defined? Fcntl::F_SETFD end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/