Skip to content

Commit 993a1a3

Browse files
committed
Support more characters in link local addresses
Implements [Feature #17524]
1 parent 938fda3 commit 993a1a3

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

lib/resolv.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2464,7 +2464,7 @@ class IPv6
24642464
Regex_8HexLinkLocal = /\A
24652465
[Ff][Ee]80
24662466
(?::[0-9A-Fa-f]{1,4}){7}
2467-
%[0-9A-Za-z]+
2467+
%[-0-9A-Za-z._~]+
24682468
\z/x
24692469

24702470
##
@@ -2478,7 +2478,7 @@ class IPv6
24782478
|
24792479
:((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)
24802480
)?
2481-
:[0-9A-Fa-f]{1,4}%[0-9A-Za-z.]+
2481+
:[0-9A-Fa-f]{1,4}%[-0-9A-Za-z._~]+
24822482
\z/x
24832483

24842484
##

test/resolv/test_addr.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ def test_valid_ipv6_link_local_address
2828
assert_match(Resolv::IPv6::Regex, "FE80:2:3:4:5:6:7:8%EM1", bug17112)
2929
assert_match(Resolv::IPv6::Regex, "FE80::20D:3AFF:FE7D:9760%ETH0", bug17112)
3030
assert_match(Resolv::IPv6::Regex, "FE80::1%EM1", bug17112)
31+
32+
bug17524 = "[ruby-core:101992]"
33+
assert_match(Resolv::IPv6::Regex, "FE80::20D:3AFF:FE7D:9760%ruby_3.0.0-1", bug17524)
34+
assert_match(Resolv::IPv6::Regex, "fe80::1%ruby_3.0.0-1", bug17524)
3135
end
3236

3337
def test_valid_socket_ip_address_list

0 commit comments

Comments
 (0)