summaryrefslogtreecommitdiff
path: root/ext/socket
diff options
context:
space:
mode:
authorseki <seki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-05-06 13:16:22 +0000
committerseki <seki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-05-06 13:16:22 +0000
commit2cc9edfe52b79e1fad7ec87107836c36863fc601 (patch)
tree41edc973c94b112922c78fdf2d6f445c773d9f08 /ext/socket
parent2bf9a4d1488ec19fd8a0560dac5c843b856b5686 (diff)
use numerichost if cannot resolve hostname
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/socket')
-rw-r--r--ext/socket/socket.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/ext/socket/socket.c b/ext/socket/socket.c
index 2c3d63b9c4..8cf54e1e1e 100644
--- a/ext/socket/socket.c
+++ b/ext/socket/socket.c
@@ -705,13 +705,13 @@ ipaddr(sockaddr)
family = rb_str_new2(pbuf);
break;
}
+ addr1 = Qnil;
if (!do_not_reverse_lookup) {
error = getnameinfo(sockaddr, SA_LEN(sockaddr), hbuf, sizeof(hbuf),
NULL, 0, 0);
- if (error) {
- rb_raise(rb_eSocket, "getnameinfo: %s", gai_strerror(error));
+ if (! error) {
+ addr1 = rb_str_new2(hbuf);
}
- addr1 = rb_str_new2(hbuf);
}
error = getnameinfo(sockaddr, SA_LEN(sockaddr), hbuf, sizeof(hbuf),
pbuf, sizeof(pbuf), NI_NUMERICHOST | NI_NUMERICSERV);
@@ -719,7 +719,7 @@ ipaddr(sockaddr)
rb_raise(rb_eSocket, "getnameinfo: %s", gai_strerror(error));
}
addr2 = rb_str_new2(hbuf);
- if (do_not_reverse_lookup) {
+ if (addr1 == Qnil) {
addr1 = addr2;
}
port = INT2FIX(atoi(pbuf));