diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | lib/resolv.rb | 4 | ||||
-rw-r--r-- | test/resolv/test_dns.rb | 14 |
3 files changed, 25 insertions, 0 deletions
@@ -1,3 +1,10 @@ +Fri Nov 21 11:58:58 2014 Aaron Patterson <aaron@tenderlovemaking.com> + + * lib/resolv.rb: fall back if canonicalization fails. + Thanks Vit Ondruch for the patch! [ruby-core:65836] + + * test/resolv/test_dns.rb: test for patch + Sat Nov 22 01:11:53 2014 Nobuyoshi Nakada <nobu@ruby-lang.org> * object.c (rb_mod_const_get, rb_mod_const_defined): ditto. diff --git a/lib/resolv.rb b/lib/resolv.rb index 293e559acf..c19aeacd05 100644 --- a/lib/resolv.rb +++ b/lib/resolv.rb @@ -1066,6 +1066,10 @@ class Resolv candidates = [] end candidates.concat(@search.map {|domain| Name.new(name.to_a + domain)}) + fname = Name.create("#{name}.") + if !candidates.include?(fname) + candidates << fname + end end return candidates end diff --git a/test/resolv/test_dns.rb b/test/resolv/test_dns.rb index bd5d2e1c02..4ace87c697 100644 --- a/test/resolv/test_dns.rb +++ b/test/resolv/test_dns.rb @@ -23,6 +23,20 @@ class TestResolvDNS < Test::Unit::TestCase end end + # [ruby-core:65836] + def test_resolve_with_2_ndots + conf = Resolv::DNS::Config.new :nameserver => ['127.0.0.1'], :ndots => 2 + assert conf.single? + + candidates = [] + conf.resolv('example.com') { |candidate, *args| + candidates << candidate + raise Resolv::DNS::Config::NXDomain + } + n = Resolv::DNS::Name.create 'example.com.' + assert_equal n, candidates.last + end + def test_query_ipv4_address begin OpenSSL |