summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-28 07:38:56 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-28 07:38:56 +0000
commit727d85c0e359657ea0538c9d81de2f870d007120 (patch)
tree854b8611f21a08800c63eb0feaf32dfe0ec77953
parentc43f86785288df9e39ebbe66235bea9824226e4a (diff)
* lib/resolv.rb (Resolv::DNS#each_address): now returns IPv6 address.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14763 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--lib/resolv.rb13
2 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 6a0f66f0b7..e7f633043c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Fri Dec 28 16:36:33 2007 NARUSE, Yui <naruse@airemix.com>
+
+ * lib/resolv.rb (Resolv::DNS#each_address): now returns IPv6 address.
+
Fri Dec 28 16:10:00 2007 Eric Hodel <drbrain@segment7.net>
* lib/rdoc/dot/dot.rb: Move to lib/rdoc/dot.rb. Fix namespacing.
diff --git a/lib/resolv.rb b/lib/resolv.rb
index 1fa3598e89..5fcf6420f5 100644
--- a/lib/resolv.rb
+++ b/lib/resolv.rb
@@ -28,7 +28,6 @@ require 'thread'
#
# * NIS is not supported.
# * /etc/nsswitch.conf is not supported.
-# * IPv6 is not supported.
class Resolv
@@ -388,7 +387,16 @@ class Resolv
# be a Resolv::IPv4 or Resolv::IPv6
def each_address(name)
- each_resource(name, Resource::IN::A) {|resource| yield resource.address}
+ buf = []
+ each_resource(name, Resource::IN::ANY) do |resource|
+ case resource.address
+ when Resolv::IPv4
+ yield resource.address
+ when Resolv::IPv6
+ buf << resource.address
+ end
+ end
+ buf.each {|resource| yield resource.address}
end
##
@@ -445,7 +453,6 @@ class Resolv
# * Resolv::DNS::Resource::IN::A
# * Resolv::DNS::Resource::IN::AAAA
# * Resolv::DNS::Resource::IN::ANY
- # * Resolv::DNS::Resource::IN::ANY
# * Resolv::DNS::Resource::IN::CNAME
# * Resolv::DNS::Resource::IN::HINFO
# * Resolv::DNS::Resource::IN::MINFO