[ruby-core:101992] [Ruby master Feature#17524] resolv: add some more characters in IPv6 link local zone id
From:
nov@...
Date:
2021-01-09 10:36:29 UTC
List:
ruby-core #101992
Issue #17524 has been reported by no6v (Nobuhiro IMAI). ---------------------------------------- Feature #17524: resolv: add some more characters in IPv6 link local zone id https://bugs.ruby-lang.org/issues/17524 * Author: no6v (Nobuhiro IMAI) * Status: Open * Priority: Normal ---------------------------------------- According to [RFC6874](https://tools.ietf.org/html/rfc6874#section-2), IPv6 link local zone id is: ``` ZoneID = 1*( unreserved / pct-encoded ) ``` where `unreserved` in [RFC3986](https://tools.ietf.org/html/rfc3986#section-2.3) is as follow. ``` unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" ``` Actually, `docker` can create such an interface. ```sh $ docker network create --ipv6 --subnet fe80::/64 --opt com.docker.network.bridge.name=ruby_3.0.0-1 ruby $ ruby -rsocket -e 'p Socket.ip_address_list.last' #<Addrinfo: fe80::1%ruby_3.0.0-1> ``` This makes `TestResolvAddr#test_valid_socket_ip_address_list` failure. Supporting a `pct-encoded` may be overwork, but adding the all of `unreserved` to * `Resolv::IPv6::Regex_8HexLinkLocal` and * `Resolv::IPv6::Regex_CompressedHexLinkLocal` sounds reasonable for me. What do you think? -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>