aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorseki <seki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-05-06 13:28:23 +0000
committerseki <seki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-05-06 13:28:23 +0000
commit175f3b2d7aa6426bb36943cbf13fb1bf40d017bb (patch)
treebec982d620d8068b0c20d2319cff78b93f645f0d
parentfb019df11e175e350cfd8f108da0be427e205eb5 (diff)
downloadruby-175f3b2d7aa6426bb36943cbf13fb1bf40d017bb.tar.gz
use numerichost if cannot resolve hostname
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--ext/socket/socket.c10
2 files changed, 10 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 1ccf6a7385..010082fbf4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu May 6 22:27:32 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+
+ * ext/socket/socket.c (ippaddr): use NUMERICHOST if can not resolve
+ hostname.
+
Thu May 6 22:09:29 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* ext/tk/tkutil.c (get_eval_string_core): bug fix. [ruby-dev:23466]
diff --git a/ext/socket/socket.c b/ext/socket/socket.c
index 9e1d705521..f34b74b340 100644
--- a/ext/socket/socket.c
+++ b/ext/socket/socket.c
@@ -750,14 +750,14 @@ ipaddr(sockaddr, norevlookup)
family = rb_str_new2(pbuf);
break;
}
-
+
+ addr1 = Qnil;
if (!norevlookup) {
error = getnameinfo(sockaddr, SA_LEN(sockaddr), hbuf, sizeof(hbuf),
NULL, 0, 0);
- if (error) {
- raise_socket_error("getnameinfo", 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);
@@ -765,7 +765,7 @@ ipaddr(sockaddr, norevlookup)
raise_socket_error("getnameinfo", error);
}
addr2 = rb_str_new2(hbuf);
- if (norevlookup) {
+ if (addr1 == Qnil) {
addr1 = addr2;
}
port = INT2FIX(atoi(pbuf));