1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

resolv.rb: case-insensitive comparison

* lib/resolv.rb (Resolv::DNS::Name#==): DNS is case-insensitive, so the
  comparison should be case-insensitive as well.
  [ruby-core:66498] [Bug #10550]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2014-12-30 07:16:14 +00:00
parent 1441d9da99
commit 69a7bb31f9
3 changed files with 15 additions and 2 deletions

View file

@ -1,3 +1,9 @@
Tue Dec 30 16:16:12 2014 Ben Miller <bmiller@rackspace.com>
* lib/resolv.rb (Resolv::DNS::Name#==): DNS is case-insensitive, so the
comparison should be case-insensitive as well.
[ruby-core:66498] [Bug #10550]
Tue Dec 30 16:03:45 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/resolv.rb (Resolv::DNS::Name): names with different dots

View file

@ -1236,8 +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.join('.').casecmp(other.to_a.join('.')).zero?
end
alias eql? == # :nodoc:

View file

@ -183,4 +183,11 @@ class TestResolvDNS < Test::Unit::TestCase
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