diff options
| author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-10-23 05:08:10 +0000 |
|---|---|---|
| committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-10-23 05:08:10 +0000 |
| commit | 0cccdf5dc5983555178493ccd9fea686dc6bf194 (patch) | |
| tree | 32dffdae92cb0c9ba724c7786087b6232baa0e72 /ext/socket/socket.c | |
| parent | adbc146adc69f75b2040c5c5701de864f9c77a5c (diff) | |
| download | ruby-0cccdf5dc5983555178493ccd9fea686dc6bf194.tar.gz ruby-0cccdf5dc5983555178493ccd9fea686dc6bf194.tar.xz ruby-0cccdf5dc5983555178493ccd9fea686dc6bf194.zip | |
* ext/socket/socket.c (sock_s_getservbyname): unuse unnecessary
object.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/socket/socket.c')
| -rw-r--r-- | ext/socket/socket.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/ext/socket/socket.c b/ext/socket/socket.c index 5788632f8..a47c6d47d 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -3222,23 +3222,23 @@ sock_s_getservbyname(int argc, VALUE *argv) 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); |
