[前][次][番号順一覧][スレッド一覧]

ruby-changes:11077

From: akr <ko1@a...>
Date: Sat, 28 Feb 2009 15:05:55 +0900 (JST)
Subject: [ruby-changes:11077] Ruby:r22672 (trunk): * ext/socket/lib/socket.rb (BasicSocket#connect_address): returns ::1

akr	2009-02-28 15:05:44 +0900 (Sat, 28 Feb 2009)

  New Revision: 22672

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=22672

  Log:
    * ext/socket/lib/socket.rb (BasicSocket#connect_address): returns ::1
      if the address is IPv4-mapped IPv6 address for 0.0.0.0 for MacOS X.

  Modified files:
    trunk/ChangeLog
    trunk/ext/socket/lib/socket.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 22671)
+++ ChangeLog	(revision 22672)
@@ -1,3 +1,8 @@
+Sat Feb 28 14:50:47 2009  Tanaka Akira  <akr@f...>
+
+	* ext/socket/lib/socket.rb (BasicSocket#connect_address): returns ::1
+	  if the address is IPv4-mapped IPv6 address for 0.0.0.0 for MacOS X.
+
 Sat Feb 28 00:18:40 2009  Tanaka Akira  <akr@f...>
 
 	* ext/socket/raddrinfo.c: suppress strict-aliasing warning with
Index: ext/socket/lib/socket.rb
===================================================================
--- ext/socket/lib/socket.rb	(revision 22671)
+++ ext/socket/lib/socket.rb	(revision 22672)
@@ -190,6 +190,8 @@
       raise SocketError, "unbound IPv6 socket" if addr.ip_port == 0
       if addr.ip_address == "::"
         addr = Addrinfo.new(["AF_INET6", addr.ip_port, nil, "::1"], addr.pfamily, addr.socktype, addr.protocol)
+      elsif addr.ip_address == "0.0.0.0" # MacOS X 10.4 returns "a.b.c.d" for IPv4-mapped IPv6 address.
+        addr = Addrinfo.new(["AF_INET6", addr.ip_port, nil, "::1"], addr.pfamily, addr.socktype, addr.protocol)
       end
     elsif defined?(Socket::AF_UNIX) && afamily == Socket::AF_UNIX
       raise SocketError, "unbound Unix socket" if addr.unix_path == ""

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]