1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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) {
|