ruby-changes:8366
From: nobu <ko1@a...>
Date: Thu, 23 Oct 2008 14:08:25 +0900 (JST)
Subject: [ruby-changes:8366] Ruby:r19896 (trunk): * ext/socket/socket.c (sock_s_getservbyname): unuse unnecessary
nobu 2008-10-23 14:08:10 +0900 (Thu, 23 Oct 2008) New Revision: 19896 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=19896 Log: * ext/socket/socket.c (sock_s_getservbyname): unuse unnecessary object. Modified files: trunk/ChangeLog trunk/ext/socket/socket.c Index: ChangeLog =================================================================== --- ChangeLog (revision 19895) +++ ChangeLog (revision 19896) @@ -1,5 +1,8 @@ -Thu Oct 23 11:17:58 2008 Nobuyoshi Nakada <nobu@r...> +Thu Oct 23 14:08:07 2008 Nobuyoshi Nakada <nobu@r...> + * ext/socket/socket.c (sock_s_getservbyname): unuse unnecessary + object. + * ext/socket/socket.c (sock_s_getservbyport): the port should be converted before the proto so that the #to_int of the former cannot alter the latter. Index: ext/socket/socket.c =================================================================== --- ext/socket/socket.c (revision 19895) +++ ext/socket/socket.c (revision 19896) @@ -3222,23 +3222,23 @@ VALUE service, proto; struct servent *sp; int port; + const char *servicename, *protoname = "tcp"; rb_scan_args(argc, argv, "11", &service, &proto); - if (NIL_P(proto)) proto = rb_str_new2("tcp"); StringValue(service); - StringValue(proto); - - sp = getservbyname(StringValueCStr(service), StringValueCStr(proto)); + if (!NIL_P(proto)) StringValue(proto); + servicename = StringValueCStr(service); + if (!NIL_P(proto)) protoname = StringValueCStr(proto); + sp = getservbyname(servicename, protoname); if (sp) { port = ntohs(sp->s_port); } else { - char *s = RSTRING_PTR(service); char *end; - port = STRTOUL(s, &end, 0); + port = STRTOUL(servicename, &end, 0); if (*end != '\0') { - rb_raise(rb_eSocket, "no such service %s/%s", s, RSTRING_PTR(proto)); + rb_raise(rb_eSocket, "no such service %s/%s", servicename, protoname); } } return INT2FIX(port); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/