summaryrefslogtreecommitdiffstats
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 14:25:19 +0545
commit223ab494dd8e78fce1d1b5415d25da11c2fa3868 (patch)
treee34a923805e6a78ca4c73beaafd0a7773a1818f2
parent23eff8bb76b9c50949c475fa59057156c693b871 (diff)
downloadpfsense-223ab494dd8e78fce1d1b5415d25da11c2fa3868.zip
pfsense-223ab494dd8e78fce1d1b5415d25da11c2fa3868.tar.gz
Refactor filter_generate_nested_alias
-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 7280ed2..5c4403b 100644
--- a/src/etc/inc/filter.inc
+++ b/src/etc/inc/filter.inc
@@ -612,7 +612,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);
@@ -629,7 +642,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);
@@ -645,7 +658,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)) {
@@ -689,9 +702,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']);
}
}
}
@@ -777,14 +788,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