summaryrefslogtreecommitdiffstats
path: root/etc/inc/util.inc
diff options
context:
space:
mode:
authorsmos <seth.mos@dds.nl>2012-04-12 07:27:02 +0200
committersmos <seth.mos@dds.nl>2012-04-12 07:28:07 +0200
commit3f5f7ad370946a0caaa0c01c55a65dc190f4a2e5 (patch)
tree1f29344db47293bd22eeefa1d30f92a2e89becf4 /etc/inc/util.inc
parent4b51cc2edb3accec7a2bae837006c8390d0b4c1a (diff)
downloadpfsense-3f5f7ad370946a0caaa0c01c55a65dc190f4a2e5.zip
pfsense-3f5f7ad370946a0caaa0c01c55a65dc190f4a2e5.tar.gz
Add modified version of user https://github.com/bcyrill patch that requires a IPv6 literal when used with a port.
Diffstat (limited to 'etc/inc/util.inc')
-rw-r--r--etc/inc/util.inc13
1 files changed, 12 insertions, 1 deletions
diff --git a/etc/inc/util.inc b/etc/inc/util.inc
index c9fe428..525ad8d 100644
--- a/etc/inc/util.inc
+++ b/etc/inc/util.inc
@@ -443,13 +443,24 @@ function is_ipaddrv4($ipaddr) {
return false;
}
+
+/* returns true if $ipaddr is a valid literal IPv6 address */
+function is_literalipaddrv6($ipaddr) {
+ if(preg_match("/\[([0-9a-f:]+)\]/i", $ipaddr, $match))
+ $ipaddr = $match[1];
+ else
+ return false;
+
+ return is_ipaddrv6($ipaddr);
+}
+
function is_ipaddrwithport($ipport) {
$parts = explode(":", $ipport);
$port = array_pop($parts);
if (count($parts) == 1) {
return is_ipaddrv4($parts[0]) && is_port($port);
} elseif (count($parts) > 1) {
- return is_ipaddrv6(implode(":", $parts)) && is_port($port);
+ return is_literalipaddrv6(implode(":", $parts)) && is_port($port);
} else {
return false;
}
OpenPOWER on IntegriCloud