diff options
author | tenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-11-21 20:04:27 +0000 |
---|---|---|
committer | tenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-11-21 20:04:27 +0000 |
commit | 570c028c7ebb18c6d276e5fac3a1b20f76f28db7 (patch) | |
tree | 632b274229b0854d82e1b655fe34cd5cff26f53d | |
parent | 8eb0c810b228df1f8352c005a7ae882ad4179b4b (diff) | |
download | ruby-570c028c7ebb18c6d276e5fac3a1b20f76f28db7.tar.gz |
* 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
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-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 |