summaryrefslogtreecommitdiffstats
path: root/etc/inc/filter.inc
diff options
context:
space:
mode:
authorRenato Botelho <garga@FreeBSD.org>2013-04-14 15:51:44 -0300
committerRenato Botelho <garga@FreeBSD.org>2013-04-14 15:51:44 -0300
commit5b431a20dead1128687453407a3b0c603154e773 (patch)
treee36289775bfdf83c775c0e5bfc6dcb87bba45806 /etc/inc/filter.inc
parent5da58a38c76c7c35e63d0af46b714f23fb726301 (diff)
downloadpfsense-5b431a20dead1128687453407a3b0c603154e773.zip
pfsense-5b431a20dead1128687453407a3b0c603154e773.tar.gz
Add a new parameter to return all aliases, including hosts. It fixes #2941
Diffstat (limited to 'etc/inc/filter.inc')
-rw-r--r--etc/inc/filter.inc16
1 files changed, 11 insertions, 5 deletions
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc
index 6f93823..d9c0611 100644
--- a/etc/inc/filter.inc
+++ b/etc/inc/filter.inc
@@ -486,13 +486,14 @@ function filter_generate_nested_alias($name, $alias, &$aliasnesting, &$aliasaddr
$finallist .= "{$builtlist} \\\n";
$builtlist = "";
}
- $builtlist .= " {$tmpline}";
+ if (!empty($tmpline))
+ $builtlist .= " {$tmpline}";
}
$finallist .= $builtlist;
return $finallist;
}
-function filter_expand_alias($alias_name)
+function filter_expand_alias($alias_name, $all = false)
{
global $config;
@@ -501,14 +502,19 @@ function filter_expand_alias($alias_name)
if($aliased['name'] == $alias_name) {
$aliasnesting = array();
$aliasaddrnesting = array();
- return filter_generate_nested_alias($aliased['name'], $aliased['address'], $aliasnesting, $aliasaddrnesting);
+ $result = filter_generate_nested_alias($aliased['name'], $aliased['address'], $aliasnesting, $aliasaddrnesting);
+ if ($all === true)
+ foreach ($aliasaddrnesting as $addr)
+ if (!preg_match("/\s*$addr\s*/", $result))
+ $result .= " {$addr}";
+ return $result;
}
}
}
}
-function filter_expand_alias_array($alias_name) {
- $expansion = filter_expand_alias($alias_name);
+function filter_expand_alias_array($alias_name, $all = false) {
+ $expansion = filter_expand_alias($alias_name, $all);
return explode(" ", preg_replace('/\s+/', ' ', trim($expansion)));
}
OpenPOWER on IntegriCloud