summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNOYB <Al_Stu@Frontier.com>2016-05-24 18:57:06 -0700
committerStephen Beaver <sbeaver@netgate.com>2016-05-25 08:33:29 -0400
commited6b9103b0f8f58cded1687b612fc999c6f9ab00 (patch)
treec19f7148061b0bea15cc4768ff35932f416c6722
parentf0f471f7c278e1795679cef63e1bc1d8581ac1ee (diff)
downloadpfsense-ed6b9103b0f8f58cded1687b612fc999c6f9ab00.zip
pfsense-ed6b9103b0f8f58cded1687b612fc999c6f9ab00.tar.gz
Firewall / Aliases / Edit - New URL Table Alias Type
Make the code cleaner and easier to follow by using the same alias type designations as config. (cherry picked from commit ebe833f6a9463b0e4add1d97c360af4a682d1add)
-rw-r--r--src/etc/inc/filter.inc3
-rw-r--r--src/etc/inc/pfsense-utils.inc22
2 files changed, 13 insertions, 12 deletions
diff --git a/src/etc/inc/filter.inc b/src/etc/inc/filter.inc
index 9556e15..8976094 100644
--- a/src/etc/inc/filter.inc
+++ b/src/etc/inc/filter.inc
@@ -850,7 +850,8 @@ function filter_generate_aliases() {
// TODO: Change it when pf supports tables with ports
$urlfn = alias_expand_urltable($aliased['name']);
if ($urlfn) {
- $aliases .= "{$aliased['name']} = \"{ " . preg_replace("/\n/", " ", file_get_contents($urlfn)) . " }\"\n";
+ $ports_tmp = parse_aliases_file($urlfn, "urltable_ports", "-1", false);
+ $aliases .= "{$aliased['name']} = \"{ " . preg_replace("/\n/", " ", implode("\n", $ports_tmp)) . " }\"\n";
}
break;
case "port":
diff --git a/src/etc/inc/pfsense-utils.inc b/src/etc/inc/pfsense-utils.inc
index 86f4a51..4ee6e7e 100644
--- a/src/etc/inc/pfsense-utils.inc
+++ b/src/etc/inc/pfsense-utils.inc
@@ -1957,8 +1957,8 @@ function parse_aliases_file($filename, $type = "url", $max_items = -1, $kflc = f
if (!empty($tmp_str)) {
$tmp = $tmp_str;
}
- $valid = ($type == "url" && (is_ipaddr($tmp) || is_subnet($tmp))) ||
- ($type == "url_ports" && (is_port($tmp) || is_portrange($tmp)));
+ $valid = (($type == "url" || $type == "urltable") && (is_ipaddr($tmp) || is_subnet($tmp))) ||
+ (($type == "url_ports" || $type == "urltable_ports") && (is_port($tmp) || is_portrange($tmp)));
if ($valid) {
$items[] = $tmp;
if (count($items) == $max_items) {
@@ -2177,17 +2177,17 @@ function process_alias_urltable($name, $type, $url, $freq, $forceupdate=false, $
if (download_file($url, $tmp_urltable_filename, $verify_ssl)) {
// Convert lines that begin with '$' or ';' to comments '#' instead of deleting them.
mwexec("/usr/bin/sed -i \"\" -E 's/^[[:space:]]*($|#|;)/#/g; /^#/!s/\;.*//g;' ". escapeshellarg($tmp_urltable_filename));
+
$type = ($type) ? $type : alias_get_type($name); // If empty type passed, try to get it from config.
- if ($type == "urltable_ports") {
- $ports = parse_aliases_file($tmp_urltable_filename, "url_ports", "-1", true);
- $ports = group_ports($ports, true);
- file_put_contents($urltable_filename, implode("\n", $ports));
- } else {
- $urltable = parse_aliases_file($tmp_urltable_filename, "url", "-1", true);
- if (is_array($urltable)) {
- file_put_contents($urltable_filename, implode("\n", $urltable));
- }
+
+ $parsed_contents = parse_aliases_file($tmp_urltable_filename, $type, "-1", true);
+ if ($type == "url_ports") {
+ $parsed_contents = group_ports($parsed_contents, true);
+ }
+ if (is_array($parsed_contents)) {
+ file_put_contents($urltable_filename, implode("\n", $parsed_contents));
}
+
/* If this backup is still there on a full install, but we aren't going to use ram disks, remove the archive since this is a transition. */
if (($g['platform'] == $g['product_name']) && !isset($config['system']['use_mfs_tmpvar'])) {
unlink_if_exists("{$g['cf_conf_path']}/RAM_Disk_Store{$urltable_filename}.tgz");
OpenPOWER on IntegriCloud