diff options
-rw-r--r-- | etc/inc/interfaces.inc | 4 | ||||
-rw-r--r-- | etc/inc/util.inc | 5 |
2 files changed, 6 insertions, 3 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc index c12f0f6..bc8fdb8 100644 --- a/etc/inc/interfaces.inc +++ b/etc/inc/interfaces.inc @@ -3425,7 +3425,7 @@ function find_interface_ipv6($interface, $flush = false) if(! preg_match("/fe80::/", $parts[1])) { $ifinfo['ipaddrv6'] = $parts[1]; if($parts[2] == "-->") { - $parts[5] = "127"; + $parts[5] = "126"; $ifinfo['subnetbitsv6'] = $parts[5]; } else { $ifinfo['subnetbitsv6'] = $parts[3]; @@ -3476,7 +3476,7 @@ function find_interface_subnetv6($interface, $flush = false) if(! preg_match("/fe80::/", $parts[1])) { $ifinfo['ipaddrv6'] = $parts[1]; if($parts[2] == "-->") { - $parts[5] = "127"; + $parts[5] = "126"; $ifinfo['subnetbitsv6'] = $parts[5]; } else { $ifinfo['subnetbitsv6'] = $parts[3]; diff --git a/etc/inc/util.inc b/etc/inc/util.inc index f3cb60b..4d939dd 100644 --- a/etc/inc/util.inc +++ b/etc/inc/util.inc @@ -226,7 +226,10 @@ function gen_subnet($ipaddr, $bits) { function gen_subnetv6($ipaddr, $bits) { if (!is_ipaddrv6($ipaddr) || !is_numeric($bits)) return ""; - return Net_IPv6::getNetmask($ipaddr, $bits); + + $address = Net_IPv6::getNetmask($ipaddr, $bits); + $address = Net_IPv6::Compress($address); + return $address; } /* return the highest (broadcast) address in the subnet given a host address and a subnet bit count */ |