From 638b96a253164b65c63825c38e79812b6c5f448d Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 27 Oct 2016 13:45:38 +0930 Subject: [PATCH] Fix compress to "::" Problem: ``` Net_IPv6::compress("0:0:0:0:0:0:0:0"); ``` returns the empty string. It should return double-colon "::" The preg_replace here are over-zealous, in the "::" case, the sring starts and ends with ":" and so both get stripped out. --- Net/IPv6.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Net/IPv6.php b/Net/IPv6.php index ba77472..39949d1 100644 --- Net/IPv6.php +++ Net/IPv6.php @@ -734,8 +734,10 @@ public static function compress($ip, $force = false) } - $cip = preg_replace('/((^:)|(:$))/', '', $cip); - $cip = preg_replace('/((^:)|(:$))/', '::', $cip); + if ($cip != "::") { + $cip = preg_replace('/((^:)|(:$))/', '', $cip); + $cip = preg_replace('/((^:)|(:$))/', '::', $cip); + } if ('' != $netmask) {