Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 1da3a31

Browse files
committed
Use lowercase letters for IPv6 addresses.
Reported by chucke (Tiago Cardoso). Patch by jeremyevans0 (Jeremy Evans). [Bug #14612]
1 parent 6eab49a commit 1da3a31

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

lib/resolv.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -2531,7 +2531,7 @@ def initialize(address) # :nodoc:
25312531
attr_reader :address
25322532

25332533
def to_s # :nodoc:
2534-
address = sprintf("%X:%X:%X:%X:%X:%X:%X:%X", *@address.unpack("nnnnnnnn"))
2534+
address = sprintf("%x:%x:%x:%x:%x:%x:%x:%x", *@address.unpack("nnnnnnnn"))
25352535
unless address.sub!(/(^|:)0(:0)+(:|$)/, '::')
25362536
address.sub!(/(^|:)0(:|$)/, '::')
25372537
end

test/resolv/test_dns.rb

+16
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,22 @@ def test_ipv6_create
216216
assert_instance_of Resolv::IPv6, Resolv::IPv6.create('::1:127.0.0.1'), ref
217217
end
218218

219+
def test_ipv6_to_s
220+
test_cases = [
221+
["2001::abcd:abcd:abcd", "2001::ABcd:abcd:ABCD"],
222+
["2001:db8::1", "2001:db8::0:1"],
223+
["::", "0:0:0:0:0:0:0:0"],
224+
["2001::", "2001::0"],
225+
["2001:db8::1:1:1:1:1", "2001:db8:0:1:1:1:1:1"],
226+
["1::1:0:0:0:1", "1:0:0:1:0:0:0:1"],
227+
["1::1:0:0:1", "1:0:0:0:1:0:0:1"],
228+
]
229+
230+
test_cases.each do |expected, ipv6|
231+
assert_equal expected, Resolv::IPv6.create(ipv6).to_s
232+
end
233+
end
234+
219235
def test_ipv6_should_be_16
220236
ref = '[rubygems:1626]'
221237

0 commit comments

Comments
 (0)