From 727d85c0e359657ea0538c9d81de2f870d007120 Mon Sep 17 00:00:00 2001 From: naruse Date: Fri, 28 Dec 2007 07:38:56 +0000 Subject: * 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 --- ChangeLog | 4 ++++ lib/resolv.rb | 13 ++++++++++--- 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 + + * lib/resolv.rb (Resolv::DNS#each_address): now returns IPv6 address. + Fri Dec 28 16:10:00 2007 Eric Hodel * 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 -- cgit v1.2.3