summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--ext/socket/socket.c9
2 files changed, 10 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 95962c77c5..ae501b093f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Wed May 3 02:12:07 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * ext/socket/socket.c (make_hostent_internal): accept ai_family
+ check from Sam Roberts <sroberts at uniserve.com>.
+ [ruby-core:07691]
+
Mon May 1 12:23:19 2006 <sinara@blade.nagaokaut.ac.jp>
* numeric.c (num_div): use floor rather than rb_Integer().
diff --git a/ext/socket/socket.c b/ext/socket/socket.c
index aaf6055784..c4e6765456 100644
--- a/ext/socket/socket.c
+++ b/ext/socket/socket.c
@@ -1252,12 +1252,11 @@ make_hostent_internal(arg)
for (ai = addr; ai; ai = ai->ai_next) {
/* Pushing all addresses regardless of address family is not the
* behaviour expected of gethostbyname(). All the addresses in struct
- * hostent->h_addr_list must be of the same family, I think the following
- * line would fix this.
-
- if(ai->ai_family == addr->ai_family) <-- suggested fix
+ * hostent->h_addr_list must be of the same family.
*/
- rb_ary_push(ary, (*ipaddr)(ai->ai_addr, ai->ai_addrlen));
+ if(ai->ai_family == addr->ai_family) {
+ rb_ary_push(ary, (*ipaddr)(ai->ai_addr, ai->ai_addrlen));
+ }
}
return ary;