summaryrefslogtreecommitdiff
path: root/net/pear-Net_IPv6/files/patch-fix_compress
diff options
context:
space:
mode:
authorRenato Botelho <garga@FreeBSD.org>2016-10-27 09:27:44 +0000
committerRenato Botelho <garga@FreeBSD.org>2016-10-27 09:27:44 +0000
commit1430c31e19c01b5e76cdcc18446215fbda158620 (patch)
treec9756d91f6b955f330434b5e5c3baa03806a19e0 /net/pear-Net_IPv6/files/patch-fix_compress
parent- Switch to options helpers (diff)
Import a patch to fix compress("::") calls
Submitted by: Phil Davis Obtained from: https://github.com/phil-davis/Net_IPv6/commit/638b96a253164b65c63825c38e79812b6c5f448d MFH: 2016Q4 Sponsored by: Rubicon Communications (Netgate)
Notes
Notes: svn path=/head/; revision=424752
Diffstat (limited to 'net/pear-Net_IPv6/files/patch-fix_compress')
-rw-r--r--net/pear-Net_IPv6/files/patch-fix_compress36
1 files changed, 36 insertions, 0 deletions
diff --git a/net/pear-Net_IPv6/files/patch-fix_compress b/net/pear-Net_IPv6/files/patch-fix_compress
new file mode 100644
index 000000000000..f6768602592f
--- /dev/null
+++ b/net/pear-Net_IPv6/files/patch-fix_compress
@@ -0,0 +1,36 @@
+From 638b96a253164b65c63825c38e79812b6c5f448d Mon Sep 17 00:00:00 2001
+From: Phil Davis <phil.davis@inf.org>
+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) {
+