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

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/

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