From: hugo.peixoto@... Date: 2018-03-21T14:29:28+00:00 Subject: [ruby-core:86243] [Ruby trunk Bug#14612] IPv6 address inconsistency (downcase vs. upcase) Issue #14612 has been updated by hugopeixoto (Hugo Peixoto). File resolv-ipv6-to_s.patch added shevegen (Robert A. Heiler) wrote: > Is there a standard that mandates or prefers either variant? RFC 5952 recommends the usage of lower case letters: https://tools.ietf.org/html/rfc5952#section-4.3 The `Resolv` module seems to be formatting the addresses in uppercase: ```ruby Resolv::IPv6.create("2400:8902::f03c:91ff:fe69:a454").to_s #=> "2400:8902::F03C:91FF:FE69:A454" ``` I noticed there's an `ipaddr` module that handles formatting as well, so in the attached patch I am using `IPAddr#new` to reuse the existing code. I also added some tests. I am not sure if adding the dependency here is the right way to do it. ---------------------------------------- Bug #14612: IPv6 address inconsistency (downcase vs. upcase) https://bugs.ruby-lang.org/issues/14612#change-71143 * Author: chucke (Tiago Cardoso) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: 2.5.0 * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN ---------------------------------------- I've noticed that sometimes ip addresses re shown using a-f characters in downcase, other times upcase. Here is a small script to show results: ```ruby require "resolv" require "socket" puts TCPSocket.getaddress("nghttp2.org") #=> "2400:8902::f03c:91ff:fe69:a454" puts Resolv.getaddresses("nghttp2.org") #=> ["139.162.123.134", "2400:8902::F03C:91FF:FE69:A454"] ``` Results might be system-dependent (I'm using Mac OS High Sierra). This makes compare operations a bit harder. ---Files-------------------------------- resolv-ipv6-to_s.patch (1.48 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: