summaryrefslogtreecommitdiffstats
path: root/etc/inc
diff options
context:
space:
mode:
Diffstat (limited to 'etc/inc')
-rw-r--r--etc/inc/filter.inc2
-rw-r--r--etc/inc/util.inc18
2 files changed, 11 insertions, 9 deletions
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc
index f31806a..3e05678 100644
--- a/etc/inc/filter.inc
+++ b/etc/inc/filter.inc
@@ -420,7 +420,7 @@ function filter_generate_nested_alias($name, $alias, &$aliasnesting, &$aliasaddr
if(!isset($aliasnesting[$address]))
$tmpline = filter_generate_nested_alias($address, $aliastable[$address], $aliasnesting, $aliasaddrnesting);
} else if(!isset($aliasaddrnesting[$address])) {
- if(!is_ipaddr($address) && !is_subnet($address)) {
+ if(!is_ipaddr($address) && !is_subnet($address) && !is_port($address)) {
$filterdns .= "{$address} = {$name}\n";
continue;
}
diff --git a/etc/inc/util.inc b/etc/inc/util.inc
index 169fb7d..498f14a 100644
--- a/etc/inc/util.inc
+++ b/etc/inc/util.inc
@@ -300,14 +300,16 @@ function is_validaliasname($name) {
/* returns true if $port is a valid TCP/UDP port */
function is_port($port) {
- if (getservbyname($port, "tcp") || getservbyname($port, "udp"))
- return true;
- if (!ctype_digit($port))
- return false;
- if ((intval($port) < 1) || (intval($port) > 65535))
- return false;
- else
- return true;
+ $tmpports = explode(":", $port);
+ foreach($tmpports as $tmpport) {
+ if (getservbyname($tmpport, "tcp") || getservbyname($tmpport, "udp"))
+ continue;
+ if (!ctype_digit($tmpport))
+ return false;
+ else if ((intval($port) < 1) || (intval($port) > 65535))
+ return false;
+ }
+ return true;
}
/* returns true if $portrange is a valid TCP/UDP portrange ("<port>:<port>") */
OpenPOWER on IntegriCloud