summaryrefslogtreecommitdiffstats
path: root/etc/inc/util.inc
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2011-07-06 18:50:55 +0000
committerErmal <eri@pfsense.org>2011-07-06 18:52:47 +0000
commit5ffa33896f3e6173a6c7d2025487b0f85d9b73af (patch)
tree4a891b64f1d1f22668f02556adeedd0f9b0c2fee /etc/inc/util.inc
parentb34b2b7da2b525389e9d42a7474d892fd77565fa (diff)
downloadpfsense-5ffa33896f3e6173a6c7d2025487b0f85d9b73af.zip
pfsense-5ffa33896f3e6173a6c7d2025487b0f85d9b73af.tar.gz
Feature #1603. Correct nested urltable alias code to be more fullproof to errors and does not break the ruleset on large lists of urltables. Though this needs a revisit to work properly since it breaks urltable alias property of reloading contents.
Diffstat (limited to 'etc/inc/util.inc')
-rw-r--r--etc/inc/util.inc28
1 files changed, 22 insertions, 6 deletions
diff --git a/etc/inc/util.inc b/etc/inc/util.inc
index 683a1d8..bcb7845 100644
--- a/etc/inc/util.inc
+++ b/etc/inc/util.inc
@@ -883,6 +883,7 @@ function alias_make_table($config) {
}
}
}
+
/* check if an alias exists */
function is_alias($name) {
global $aliastable;
@@ -890,6 +891,19 @@ function is_alias($name) {
return isset($aliastable[$name]);
}
+function alias_get_type($name) {
+ global $config;
+
+ if (is_array($config['aliases']['alias'])) {
+ foreach ($config['aliases']['alias'] as $alias) {
+ if ($name == $alias['name'])
+ return $alias['type'];
+ }
+ }
+
+ return "";
+}
+
/* expand a host or network alias, if necessary */
function alias_expand($name) {
global $aliastable;
@@ -907,12 +921,14 @@ function alias_expand_urltable($name) {
$urltable_prefix = "/var/db/aliastables/";
$urltable_filename = $urltable_prefix . $name . ".txt";
- foreach ($config['aliases']['alias'] as $alias) {
- if (($alias['type'] == 'urltable') && ($alias['name'] == $name)) {
- if (is_URL($alias["url"]) && file_exists($urltable_filename) && filesize($urltable_filename))
- return $urltable_filename;
- else if (process_alias_urltable($name, $alias["url"], 0, true))
- return $urltable_filename;
+ if (is_array($config['aliases']['alias'])) {
+ foreach ($config['aliases']['alias'] as $alias) {
+ if (($alias['type'] == 'urltable') && ($alias['name'] == $name)) {
+ if (is_URL($alias["url"]) && file_exists($urltable_filename) && filesize($urltable_filename))
+ return $urltable_filename;
+ else if (process_alias_urltable($name, $alias["url"], 0, true))
+ return $urltable_filename;
+ }
}
}
return null;
OpenPOWER on IntegriCloud