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

ruby-changes:10113

From: nobu <ko1@a...>
Date: Mon, 19 Jan 2009 11:01:56 +0900 (JST)
Subject: [ruby-changes:10113] Ruby:r21656 (trunk): * ext/socket/raddrinfo.c (addrinfo_ip_port): use AF_INET6 only when

nobu	2009-01-19 11:00:52 +0900 (Mon, 19 Jan 2009)

  New Revision: 21656

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

  Log:
    * ext/socket/raddrinfo.c (addrinfo_ip_port): use AF_INET6 only when
      defined, as well as addrinfo_ipv6_p().

  Modified files:
    trunk/ChangeLog
    trunk/ext/socket/raddrinfo.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 21655)
+++ ChangeLog	(revision 21656)
@@ -1,3 +1,8 @@
+Mon Jan 19 11:00:44 2009  Nobuyoshi Nakada  <nobu@r...>
+
+	* ext/socket/raddrinfo.c (addrinfo_ip_port): use AF_INET6 only when
+	  defined, as well as addrinfo_ipv6_p().
+
 Mon Jan 19 10:43:38 2009  Koichi Sasada  <ko1@a...>
 
 	* gc.c (garbage_collect_with_gvl): suppress warnings.
Index: ext/socket/raddrinfo.c
===================================================================
--- ext/socket/raddrinfo.c	(revision 21655)
+++ ext/socket/raddrinfo.c	(revision 21656)
@@ -1592,8 +1592,14 @@
     int family = ai_get_afamily(rai);
     int port;
 
-    if (!IS_IP_FAMILY(family))
+    if (!IS_IP_FAMILY(family)) {
+      bad_family:
+#ifdef AF_INET6
 	rb_raise(rb_eSocket, "need IPv4 or IPv6 address");
+#else
+	rb_raise(rb_eSocket, "need IPv4 address");
+#endif
+    }
 
     switch (family) {
       case AF_INET:
@@ -1602,14 +1608,16 @@
         port = ntohs(((struct sockaddr_in *)&rai->addr)->sin_port);
         break;
 
+#ifdef AF_INET6
       case AF_INET6:
         if (rai->sockaddr_len != sizeof(struct sockaddr_in6))
             rb_raise(rb_eSocket, "unexpected sockaddr size for IPv6");
         port = ntohs(((struct sockaddr_in6 *)&rai->addr)->sin6_port);
         break;
+#endif
 
       default:
-	rb_raise(rb_eSocket, "need IPv4 or IPv6 address");
+	goto bad_family;
     }
 
     return INT2NUM(port);

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

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