From: jaruga@... Date: 2021-03-24T17:22:05+00:00 Subject: [ruby-core:102999] [Ruby master Feature#17524] resolv: add some more characters in IPv6 link local zone id Issue #17524 has been updated by jaruga (Jun Aruga). I just faced this issue where `cni-podman0` including `-` is used as string matching with `Resolv::IPv6::Regex_CompressedHexLinkLocal`. ``` $ ruby -rsocket -e 'p Socket.ip_address_list[8]' #<Addrinfo: fe80::9856:24ff:fe1b:f759%cni-podman0> ``` ---------------------------------------- Feature #17524: resolv: add some more characters in IPv6 link local zone id https://bugs.ruby-lang.org/issues/17524#change-91063 * Author: no6v (Nobuhiro IMAI) * Status: Assigned * Priority: Normal * Assignee: akr (Akira Tanaka) ---------------------------------------- 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>