mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Make Resolv::DNS#each_name accept Resolv::IPv{4,6} arguments
These arguments were previously documented as supported, but not actually supported. Patch from Toru Iwase Fixes [Bug #15900]
This commit is contained in:
parent
a432c014c9
commit
6650899248
2 changed files with 26 additions and 0 deletions
|
|
@ -451,6 +451,8 @@ class Resolv
|
|||
case address
|
||||
when Name
|
||||
ptr = address
|
||||
when IPv4, IPv6
|
||||
ptr = address.to_name
|
||||
when IPv4::Regex
|
||||
ptr = IPv4.create(address).to_name
|
||||
when IPv6::Regex
|
||||
|
|
|
|||
|
|
@ -265,4 +265,28 @@ class TestResolvDNS < Test::Unit::TestCase
|
|||
def test_no_fd_leak_unconnected
|
||||
assert_no_fd_leak {Resolv::DNS.new}
|
||||
end
|
||||
|
||||
def test_each_name
|
||||
dns = Resolv::DNS.new
|
||||
def dns.each_resource(name, typeclass)
|
||||
yield typeclass.new(name)
|
||||
end
|
||||
|
||||
dns.each_name('127.0.0.1') do |ptr|
|
||||
assert_equal('1.0.0.127.in-addr.arpa', ptr.to_s)
|
||||
end
|
||||
dns.each_name(Resolv::IPv4.create('127.0.0.1')) do |ptr|
|
||||
assert_equal('1.0.0.127.in-addr.arpa', ptr.to_s)
|
||||
end
|
||||
dns.each_name('::1') do |ptr|
|
||||
assert_equal('1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa', ptr.to_s)
|
||||
end
|
||||
dns.each_name(Resolv::IPv6.create('::1')) do |ptr|
|
||||
assert_equal('1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa', ptr.to_s)
|
||||
end
|
||||
dns.each_name(Resolv::DNS::Name.create('1.0.0.127.in-addr.arpa.')) do |ptr|
|
||||
assert_equal('1.0.0.127.in-addr.arpa', ptr.to_s)
|
||||
end
|
||||
assert_raise(Resolv::ResolvError) { dns.each_name('example.com') }
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue