aboutsummaryrefslogtreecommitdiffstats
path: root/lib/resolv.rb
diff options
context:
space:
mode:
authorJohn Bond <b4ldr@users.noreply.github.com>2023-11-22 11:35:22 +0100
committergit <svn-admin@ruby-lang.org>2023-11-22 10:35:36 +0000
commit9e24d747ffbc1040d93ac53bff0c1ef0914419c8 (patch)
treed778b42446ae304ec59bd5f65b545aca6f216d92 /lib/resolv.rb
parent6391ae9ebc0b7a6668e57aa9f3c7b76ff83fab70 (diff)
downloadruby-9e24d747ffbc1040d93ac53bff0c1ef0914419c8.tar.gz
[ruby/resolv] IPv6: update to_s method to be RFC5952 compliant
(https://github.com/ruby/resolv/pull/25) * IPv6: update to_s method to be RFC5952 compliant I noticed that the resolv library does not honour RFC 5952 Section 4.2.2. in relation to textural representation of ipv6 addresses: The symbol "::" MUST NOT be used to shorten just one 16-bit 0 field. For example, the representation 2001:db8:0:1:1:1:1:1 is correct, but 2001:db8::1:1:1:1:1 is not correct. Fixes https://github.com/ruby/resolv/pull/24 https://github.com/ruby/resolv/commit/5efcd6ed70 Co-authored-by: Sorah Fukumori <sora134@gmail.com>
Diffstat (limited to 'lib/resolv.rb')
-rw-r--r--lib/resolv.rb6
1 files changed, 1 insertions, 5 deletions
diff --git a/lib/resolv.rb b/lib/resolv.rb
index 47c4ef6b3b..0db6cc5c59 100644
--- a/lib/resolv.rb
+++ b/lib/resolv.rb
@@ -2560,11 +2560,7 @@ class Resolv
attr_reader :address
def to_s # :nodoc:
- address = sprintf("%x:%x:%x:%x:%x:%x:%x:%x", *@address.unpack("nnnnnnnn"))
- unless address.sub!(/(^|:)0(:0)+(:|$)/, '::')
- address.sub!(/(^|:)0(:|$)/, '::')
- end
- return address
+ sprintf("%x:%x:%x:%x:%x:%x:%x:%x", *@address.unpack("nnnnnnnn")).sub(/(^|:)0(:0)+(:|$)/, '::')
end
def inspect # :nodoc: