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

ruby-changes:9706

From: akr <ko1@a...>
Date: Thu, 1 Jan 2009 20:48:16 +0900 (JST)
Subject: [ruby-changes:9706] Ruby:r21247 (trunk): * ext/socket/socket.c (sock_s_getaddrinfo): use family_to_int.

akr	2009-01-01 20:47:55 +0900 (Thu, 01 Jan 2009)

  New Revision: 21247

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

  Log:
    * ext/socket/socket.c (sock_s_getaddrinfo): use family_to_int.

  Modified files:
    trunk/ChangeLog
    trunk/ext/socket/socket.c
    trunk/test/socket/test_socket.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 21246)
+++ ChangeLog	(revision 21247)
@@ -1,3 +1,7 @@
+Thu Jan  1 20:47:09 2009  Tanaka Akira  <akr@f...>
+
+	* ext/socket/socket.c (sock_s_getaddrinfo): use family_to_int.
+
 Thu Jan  1 20:17:47 2009  Tanaka Akira  <akr@f...>
 
 	* ext/socket/socket.c: include constants.h at top.
Index: ext/socket/socket.c
===================================================================
--- ext/socket/socket.c	(revision 21246)
+++ ext/socket/socket.c	(revision 21247)
@@ -3252,14 +3252,10 @@
 	hints.ai_family = FIX2INT(family);
     }
     else if ((ap = StringValuePtr(family)) != 0) {
-	if (strcmp(ap, "AF_INET") == 0) {
-	    hints.ai_family = PF_INET;
-	}
-#ifdef INET6
-	else if (strcmp(ap, "AF_INET6") == 0) {
-	    hints.ai_family = PF_INET6;
-	}
-#endif
+        int af;
+        if (family_to_int(ap, RSTRING_LEN(family), &af) == -1)
+	    rb_raise(rb_eSocket, "unknown socket domain %s", ap);
+        hints.ai_family = af;
     }
 
     if (!NIL_P(socktype)) {
Index: test/socket/test_socket.rb
===================================================================
--- test/socket/test_socket.rb	(revision 21246)
+++ test/socket/test_socket.rb	(revision 21247)
@@ -110,4 +110,9 @@
       assert_raise(ArgumentError) { Socket.unpack_sockaddr_un(addr) }
     }
   end
+
+  def test_getaddrinfo
+    # This should not send a DNS query because AF_UNIX.
+    assert_raise(SocketError) { Socket.getaddrinfo("www.kame.net", 80, "AF_UNIX") }
+  end
 end if defined?(Socket)

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

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