summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPhil Davis <phil.davis@inf.org>2017-03-26 13:51:00 +0545
committerPhil Davis <phil.davis@inf.org>2017-03-26 13:51:00 +0545
commit810d47c9b2ace51ca4928cccbe840009d715b1f9 (patch)
tree2d7f598a0614fef64e6dcd1fd3cc53d7c9c7c4c1 /src
parent4081ecacd6caa61a182c7db3723a22b0a3113f64 (diff)
downloadpfsense-810d47c9b2ace51ca4928cccbe840009d715b1f9.zip
pfsense-810d47c9b2ace51ca4928cccbe840009d715b1f9.tar.gz
Refactor filter_generate_nested_alias
Diffstat (limited to 'src')
-rw-r--r--src/etc/inc/filter.inc27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/etc/inc/filter.inc b/src/etc/inc/filter.inc
index bcaf122..241de81 100644
--- a/src/etc/inc/filter.inc
+++ b/src/etc/inc/filter.inc
@@ -587,7 +587,20 @@ function filter_generate_scrubing() {
return $scrubrules;
}
-function filter_generate_nested_alias($name, $alias, &$aliasnesting, &$aliasaddrnesting, &$use_filterdns = false) {
+function filter_generate_nested_alias($name) {
+ global $aliastable;
+
+ $aliasnesting = array();
+ $aliasaddrnesting = array();
+
+ if (($name == "") || !isset($aliastable[$name])) {
+ return "";
+ }
+
+ return filter_generate_nested_alias_recurse($name, $aliastable[$name], $aliasnesting, $aliasaddrnesting);
+}
+
+function filter_generate_nested_alias_recurse($name, $alias, &$aliasnesting, &$aliasaddrnesting, &$use_filterdns = false) {
global $aliastable, $filterdns;
$addresses = explode(" ", $alias);
@@ -604,7 +617,7 @@ function filter_generate_nested_alias($name, $alias, &$aliasnesting, &$aliasaddr
$tmpline = "";
if (is_alias($address)) {
if (alias_get_type($address) == 'urltable') {
- // Feature#1603. For this type of alias we do not need to recursively call filter_generate_nested_alias. Just load IPs from the file.
+ // Feature#1603. For this type of alias we do not need to recursively call filter_generate_nested_alias_recurse. Just load IPs from the file.
$urltable_nesting = alias_expand_urltable($address);
if (!empty($urltable_nesting)) {
$urlfile_as_arr = file($urltable_nesting);
@@ -620,7 +633,7 @@ function filter_generate_nested_alias($name, $alias, &$aliasnesting, &$aliasaddr
}
/* We already expanded this alias so there is no necessity to do it again. */
else if (!isset($aliasnesting[$address])) {
- $tmpline = filter_generate_nested_alias($name, $aliastable[$address], $aliasnesting, $aliasaddrnesting, $use_filterdns);
+ $tmpline = filter_generate_nested_alias_recurse($name, $aliastable[$address], $aliasnesting, $aliasaddrnesting, $use_filterdns);
}
} else if (!isset($aliasaddrnesting[$address])) {
if (!is_ipaddr($address) && !is_subnet($address) && !((($alias_type == 'port') || ($alias_type == 'url_ports')) && is_portorrange($address)) && is_hostname($address)) {
@@ -664,9 +677,7 @@ function filter_expand_alias($alias_name) {
if (isset($config['aliases']['alias'])) {
foreach ($config['aliases']['alias'] as $aliased) {
if ($aliased['name'] == $alias_name) {
- $aliasnesting = array();
- $aliasaddrnesting = array();
- return filter_generate_nested_alias($aliased['name'], $aliased['address'], $aliasnesting, $aliasaddrnesting);
+ return filter_generate_nested_alias($aliased['name']);
}
}
}
@@ -750,14 +761,12 @@ function filter_generate_aliases() {
/* Setup pf groups */
if (isset($config['aliases']['alias'])) {
foreach ($config['aliases']['alias'] as $aliased) {
- $aliasnesting = array();
- $aliasaddrnesting = array();
if (is_numericint($aliased['name'])) {
// skip aliases with numeric-only names. redmine #4289
file_notice("Filter_Reload", sprintf(gettext("Aliases with numeric-only names are not valid. Skipping alias %s"), $aliased['name']));
continue;
}
- $addrlist = filter_generate_nested_alias($aliased['name'], $aliased['address'], $aliasnesting, $aliasaddrnesting);
+ $addrlist = filter_generate_nested_alias($aliased['name']);
switch ($aliased['type']) {
case "host":
case "network":
OpenPOWER on IntegriCloud