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

ruby-changes:9711

From: akr <ko1@a...>
Date: Thu, 1 Jan 2009 21:27:11 +0900 (JST)
Subject: [ruby-changes:9711] Ruby:r21252 (trunk): * ext/socket/socket.c (sock_s_getnameinfo): use family_to_int.

akr	2009-01-01 21:26:57 +0900 (Thu, 01 Jan 2009)

  New Revision: 21252

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

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

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

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 21251)
+++ ChangeLog	(revision 21252)
@@ -1,3 +1,7 @@
+Thu Jan  1 21:26:05 2009  Tanaka Akira  <akr@f...>
+
+	* ext/socket/socket.c (sock_s_getnameinfo): use family_to_int.
+
 Thu Jan  1 21:08:34 2009  Tanaka Akira  <akr@f...>
 
 	* ext/socket/mkconstants.rb: check all alias possibility. 
Index: ext/socket/socket.c
===================================================================
--- ext/socket/socket.c	(revision 21251)
+++ ext/socket/socket.c	(revision 21252)
@@ -3369,14 +3369,10 @@
 	    hints.ai_family = FIX2INT(af);
 	}
 	else if ((ap = StringValuePtr(af)) != 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 family;
+            if (family_to_int(ap, RSTRING_LEN(af), &family) == -1)
+                rb_raise(rb_eSocket, "unknown socket domain %s", ap);
+            hints.ai_family = family;
 	}
 	error = getaddrinfo(hptr, pptr, &hints, &res);
 	if (error) goto error_exit_addr;
Index: test/socket/test_socket.rb
===================================================================
--- test/socket/test_socket.rb	(revision 21251)
+++ test/socket/test_socket.rb	(revision 21252)
@@ -115,4 +115,8 @@
     # This should not send a DNS query because AF_UNIX.
     assert_raise(SocketError) { Socket.getaddrinfo("www.kame.net", 80, "AF_UNIX") }
   end
+
+  def test_getnameinfo
+    assert_raise(SocketError) { Socket.getnameinfo(["AF_UNIX", 80, "0.0.0.0"]) }
+  end
 end if defined?(Socket)

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

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