From 94c6f3d3ca393a9e4ee7ce4382a48ce9f7431889 Mon Sep 17 00:00:00 2001 From: naruse Date: Fri, 16 Jan 2015 09:28:08 +0000 Subject: merge revision(s) 49071,49072,49073,49078: [Backport #10550] * lib/resolv.rb (Resolv::DNS::Name): names with different dots should be different. * lib/resolv.rb (Resolv::DNS::Name#==): DNS is case-insensitive, so the comparison should be case-insensitive as well. [ruby-core:66498] [Bug #10550] * lib/resolv.rb (Resolv::DNS::Name#==): Compare an array of Label:Str objects. Label#Str#== is case-insensitive. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49281 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 16 ++++++++++++++++ lib/resolv.rb | 3 ++- test/resolv/test_dns.rb | 13 +++++++++++++ version.h | 2 +- 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 895c213d85..c994df6513 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +Fri Jan 16 18:25:57 2015 Tanaka Akira + + * lib/resolv.rb (Resolv::DNS::Name#==): Compare an array of Label:Str + objects. Label#Str#== is case-insensitive. + +Fri Jan 16 18:25:57 2015 Ben Miller + + * lib/resolv.rb (Resolv::DNS::Name#==): DNS is case-insensitive, so the + comparison should be case-insensitive as well. + [ruby-core:66498] [Bug #10550] + +Fri Jan 16 18:25:57 2015 Nobuyoshi Nakada + + * lib/resolv.rb (Resolv::DNS::Name): names with different dots + should be different. + Fri Jan 16 17:34:57 2015 Nobuyoshi Nakada * parse.y (f_label): return tLABEL value as it is. diff --git a/lib/resolv.rb b/lib/resolv.rb index c19aeacd05..3f3ed41a47 100644 --- a/lib/resolv.rb +++ b/lib/resolv.rb @@ -1236,7 +1236,8 @@ class Resolv def ==(other) # :nodoc: return false unless Name === other - return @labels.join == other.to_a.join && @absolute == other.absolute? + return false unless @absolute == other.absolute? + return @labels == other.to_a end alias eql? == # :nodoc: diff --git a/test/resolv/test_dns.rb b/test/resolv/test_dns.rb index 8334622410..8e54dd7904 100644 --- a/test/resolv/test_dns.rb +++ b/test/resolv/test_dns.rb @@ -177,4 +177,17 @@ class TestResolvDNS < Test::Unit::TestCase end end end + + def test_dots_diffences + name1 = Resolv::DNS::Name.create("example.org") + name2 = Resolv::DNS::Name.create("ex.ampl.eo.rg") + assert_not_equal(name1, name2, "different dots") + end + + def test_case_insensitive_name + bug10550 = '[ruby-core:66498] [Bug #10550]' + lower = Resolv::DNS::Name.create("ruby-lang.org") + upper = Resolv::DNS::Name.create("Ruby-Lang.org") + assert_equal(lower, upper, bug10550) + end end diff --git a/version.h b/version.h index 947b3e7fcd..74a741635c 100644 --- a/version.h +++ b/version.h @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.2.0" #define RUBY_RELEASE_DATE "2015-01-16" -#define RUBY_PATCHLEVEL 13 +#define RUBY_PATCHLEVEL 14 #define RUBY_RELEASE_YEAR 2015 #define RUBY_RELEASE_MONTH 1 -- cgit v1.2.1