diff options
author | smos <seth.mos@dds.nl> | 2012-04-12 07:27:02 +0200 |
---|---|---|
committer | smos <seth.mos@dds.nl> | 2012-04-12 07:28:07 +0200 |
commit | 3f5f7ad370946a0caaa0c01c55a65dc190f4a2e5 (patch) | |
tree | 1f29344db47293bd22eeefa1d30f92a2e89becf4 /etc/inc/util.inc | |
parent | 4b51cc2edb3accec7a2bae837006c8390d0b4c1a (diff) | |
download | pfsense-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.inc | 13 |
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; } |