ruby-changes:9716
From: akr <ko1@a...>
Date: Fri, 2 Jan 2009 00:59:25 +0900 (JST)
Subject: [ruby-changes:9716] Ruby:r21257 (trunk): * ext/socket/socket.c (family_arg): accept symbols as well.
akr 2009-01-02 00:59:10 +0900 (Fri, 02 Jan 2009) New Revision: 21257 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=21257 Log: * ext/socket/socket.c (family_arg): accept symbols as well. (socktype_arg): ditto. Modified files: trunk/ChangeLog trunk/ext/socket/socket.c trunk/test/socket/test_socket.rb trunk/test/socket/test_udp.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 21256) +++ ChangeLog (revision 21257) @@ -1,3 +1,8 @@ +Fri Jan 2 00:58:40 2009 Tanaka Akira <akr@f...> + + * ext/socket/socket.c (family_arg): accept symbols as well. + (socktype_arg): ditto. + Fri Jan 2 00:49:44 2009 Tanaka Akira <akr@f...> * ext/socket/socket.c (sock_s_getaddrinfo): use socktype_arg. Index: ext/socket/socket.c =================================================================== --- ext/socket/socket.c (revision 21256) +++ ext/socket/socket.c (revision 21257) @@ -249,9 +249,13 @@ char *ptr; int ret; - tmp = rb_check_string_type(domain); - if (!NIL_P(tmp)) { + if (SYMBOL_P(domain)) { + domain = rb_sym_to_s(domain); + goto str; + } + else if (!NIL_P(tmp = rb_check_string_type(domain))) { domain = tmp; + str: rb_check_safe_obj(domain); ptr = RSTRING_PTR(domain); if (family_to_int(ptr, RSTRING_LEN(domain), &ret) == -1) @@ -271,9 +275,13 @@ char *ptr; int ret; - tmp = rb_check_string_type(type); - if (!NIL_P(tmp)) { + if (SYMBOL_P(type)) { + type = rb_sym_to_s(type); + goto str; + } + else if (!NIL_P(tmp = rb_check_string_type(type))) { type = tmp; + str: rb_check_safe_obj(type); ptr = RSTRING_PTR(type); if (socktype_to_int(ptr, RSTRING_LEN(type), &ret) == -1) Index: test/socket/test_socket.rb =================================================================== --- test/socket/test_socket.rb (revision 21256) +++ test/socket/test_socket.rb (revision 21257) @@ -109,6 +109,11 @@ assert_nothing_raised { Socket.unpack_sockaddr_in(addr) } assert_raise(ArgumentError) { Socket.unpack_sockaddr_un(addr) } } + Socket.open(:AF_INET, :SOCK_STREAM, 0) {|s| + addr = s.getsockname + assert_nothing_raised { Socket.unpack_sockaddr_in(addr) } + assert_raise(ArgumentError) { Socket.unpack_sockaddr_un(addr) } + } end def test_getaddrinfo Index: test/socket/test_udp.rb =================================================================== --- test/socket/test_udp.rb (revision 21256) +++ test/socket/test_udp.rb (revision 21257) @@ -10,6 +10,7 @@ assert_nothing_raised { UDPSocket.open {} } assert_nothing_raised { UDPSocket.open(Socket::AF_INET) {} } assert_nothing_raised { UDPSocket.open("AF_INET") {} } + assert_nothing_raised { UDPSocket.open(:AF_INET) {} } if defined? Socket::AF_INET6 assert_nothing_raised { UDPSocket.open(Socket::AF_INET6) {} } end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/