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/