summaryrefslogtreecommitdiff
path: root/lib/resolv.rb
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 /lib/resolv.rb
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
Diffstat (limited to 'lib/resolv.rb')
-rw-r--r--lib/resolv.rb13
1 files changed, 10 insertions, 3 deletions
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