diff options
author | Renato Botelho <garga@FreeBSD.org> | 2013-04-14 15:51:44 -0300 |
---|---|---|
committer | Renato Botelho <garga@FreeBSD.org> | 2013-04-14 15:51:44 -0300 |
commit | 5b431a20dead1128687453407a3b0c603154e773 (patch) | |
tree | e36289775bfdf83c775c0e5bfc6dcb87bba45806 /etc | |
parent | 5da58a38c76c7c35e63d0af46b714f23fb726301 (diff) | |
download | pfsense-5b431a20dead1128687453407a3b0c603154e773.zip pfsense-5b431a20dead1128687453407a3b0c603154e773.tar.gz |
Add a new parameter to return all aliases, including hosts. It fixes #2941
Diffstat (limited to 'etc')
-rw-r--r-- | etc/inc/filter.inc | 16 |
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))); } |