summaryrefslogtreecommitdiff
path: root/lib/resolv.rb
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-28 07:41:02 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-28 07:41:02 +0000
commit56c04e54e6bf5e195e828f0e5d921f37688cdc08 (patch)
treee55f81b5e773f620e7c9e805f41293ba51923634 /lib/resolv.rb
parent1f84e89cf45158c2ddca44b7823bbcadbca9d732 (diff)
* lib/resolv.rb (Resolv::DNS#each_address): now returns IPv6 address.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@14764 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 1f549a4710..252ac49c0f 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