diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-28 07:41:02 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-28 07:41:02 +0000 |
commit | 56c04e54e6bf5e195e828f0e5d921f37688cdc08 (patch) | |
tree | e55f81b5e773f620e7c9e805f41293ba51923634 /lib | |
parent | 1f84e89cf45158c2ddca44b7823bbcadbca9d732 (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')
-rw-r--r-- | lib/resolv.rb | 13 |
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 |