From 24807bfeaec218948937a1fdc2b4e863319e41a0 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Sun, 16 Apr 2017 14:59:53 +0545 Subject: [PATCH] Refactor update_alias_names_upon_change --- src/etc/inc/pfsense-utils.inc | 31 +++++++++++++++++++++ src/usr/local/www/diag_backup.php | 11 +------- src/usr/local/www/firewall_aliases_edit.php | 25 +---------------- 3 files changed, 33 insertions(+), 34 deletions(-) diff --git a/src/etc/inc/pfsense-utils.inc b/src/etc/inc/pfsense-utils.inc index 07b225bc6c..87a5d62b71 100644 --- a/src/etc/inc/pfsense-utils.inc +++ b/src/etc/inc/pfsense-utils.inc @@ -2078,6 +2078,37 @@ function update_progress_bar($percent, $first_time) { } } +function update_alias_name($new_alias_name, $orig_alias_name) { + if (!$orig_alias_name) { + return; + } + + // Firewall rules + update_alias_names_upon_change(array('filter', 'rule'), array('source', 'address'), $new_alias_name, $orig_alias_name); + update_alias_names_upon_change(array('filter', 'rule'), array('destination', 'address'), $new_alias_name, $orig_alias_name); + update_alias_names_upon_change(array('filter', 'rule'), array('source', 'port'), $new_alias_name, $orig_alias_name); + update_alias_names_upon_change(array('filter', 'rule'), array('destination', 'port'), $new_alias_name, $orig_alias_name); + // NAT Rules + update_alias_names_upon_change(array('nat', 'rule'), array('source', 'address'), $new_alias_name, $orig_alias_name); + update_alias_names_upon_change(array('nat', 'rule'), array('source', 'port'), $new_alias_name, $orig_alias_name); + update_alias_names_upon_change(array('nat', 'rule'), array('destination', 'address'), $new_alias_name, $orig_alias_name); + update_alias_names_upon_change(array('nat', 'rule'), array('destination', 'port'), $new_alias_name, $orig_alias_name); + update_alias_names_upon_change(array('nat', 'rule'), array('target'), $new_alias_name, $orig_alias_name); + update_alias_names_upon_change(array('nat', 'rule'), array('local-port'), $new_alias_name, $orig_alias_name); + // NAT 1:1 Rules + //update_alias_names_upon_change(array('nat', 'onetoone'), array('external'), $new_alias_name, $orig_alias_name); + //update_alias_names_upon_change(array('nat', 'onetoone'), array('source', 'address'), $new_alias_name, $orig_alias_name); + update_alias_names_upon_change(array('nat', 'onetoone'), array('destination', 'address'), $new_alias_name, $orig_alias_name); + // NAT Outbound Rules + update_alias_names_upon_change(array('nat', 'outbound', 'rule'), array('source', 'network'), $new_alias_name, $orig_alias_name); + update_alias_names_upon_change(array('nat', 'outbound', 'rule'), array('sourceport'), $new_alias_name, $orig_alias_name); + update_alias_names_upon_change(array('nat', 'outbound', 'rule'), array('destination', 'address'), $new_alias_name, $orig_alias_name); + update_alias_names_upon_change(array('nat', 'outbound', 'rule'), array('dstport'), $new_alias_name, $orig_alias_name); + update_alias_names_upon_change(array('nat', 'outbound', 'rule'), array('target'), $new_alias_name, $orig_alias_name); + // Alias in an alias + update_alias_names_upon_change(array('aliases', 'alias'), array('address'), $new_alias_name, $orig_alias_name); +} + function update_alias_names_upon_change($section, $field, $new_alias_name, $origname) { global $g, $config, $pconfig, $debug; if (!$origname) { diff --git a/src/usr/local/www/diag_backup.php b/src/usr/local/www/diag_backup.php index be44f68bfa..f951aac117 100644 --- a/src/usr/local/www/diag_backup.php +++ b/src/usr/local/www/diag_backup.php @@ -328,17 +328,8 @@ if ($_POST) { if (is_array($ifdescrs)) { foreach ($ifdescrs as $iface) { if (is_alias($config['interfaces'][$iface]['descr'])) { - // Firewall rules $origname = $config['interfaces'][$iface]['descr']; - $newname = $config['interfaces'][$iface]['descr'] . "Alias"; - update_alias_names_upon_change(array('filter', 'rule'), array('source', 'address'), $newname, $origname); - update_alias_names_upon_change(array('filter', 'rule'), array('destination', 'address'), $newname, $origname); - // NAT Rules - update_alias_names_upon_change(array('nat', 'rule'), array('source', 'address'), $newname, $origname); - update_alias_names_upon_change(array('nat', 'rule'), array('destination', 'address'), $newname, $origname); - update_alias_names_upon_change(array('nat', 'rule'), array('target'), $newname, $origname); - // Alias in an alias - update_alias_names_upon_change(array('aliases', 'alias'), array('address'), $newname, $origname); + update_alias_name($origname . "Alias", $origname); } } } diff --git a/src/usr/local/www/firewall_aliases_edit.php b/src/usr/local/www/firewall_aliases_edit.php index 7a38c57aaa..a993d9bce2 100644 --- a/src/usr/local/www/firewall_aliases_edit.php +++ b/src/usr/local/www/firewall_aliases_edit.php @@ -469,30 +469,7 @@ if ($_POST['save']) { * renamed on referenced rules and such */ if ($_POST['name'] <> $_POST['origname']) { - // Firewall rules - update_alias_names_upon_change(array('filter', 'rule'), array('source', 'address'), $_POST['name'], $origname); - update_alias_names_upon_change(array('filter', 'rule'), array('destination', 'address'), $_POST['name'], $origname); - update_alias_names_upon_change(array('filter', 'rule'), array('source', 'port'), $_POST['name'], $origname); - update_alias_names_upon_change(array('filter', 'rule'), array('destination', 'port'), $_POST['name'], $origname); - // NAT Rules - update_alias_names_upon_change(array('nat', 'rule'), array('source', 'address'), $_POST['name'], $origname); - update_alias_names_upon_change(array('nat', 'rule'), array('source', 'port'), $_POST['name'], $origname); - update_alias_names_upon_change(array('nat', 'rule'), array('destination', 'address'), $_POST['name'], $origname); - update_alias_names_upon_change(array('nat', 'rule'), array('destination', 'port'), $_POST['name'], $origname); - update_alias_names_upon_change(array('nat', 'rule'), array('target'), $_POST['name'], $origname); - update_alias_names_upon_change(array('nat', 'rule'), array('local-port'), $_POST['name'], $origname); - // NAT 1:1 Rules - //update_alias_names_upon_change(array('nat', 'onetoone'), array('external'), $_POST['name'], $origname); - //update_alias_names_upon_change(array('nat', 'onetoone'), array('source', 'address'), $_POST['name'], $origname); - update_alias_names_upon_change(array('nat', 'onetoone'), array('destination', 'address'), $_POST['name'], $origname); - // NAT Outbound Rules - update_alias_names_upon_change(array('nat', 'outbound', 'rule'), array('source', 'network'), $_POST['name'], $origname); - update_alias_names_upon_change(array('nat', 'outbound', 'rule'), array('sourceport'), $_POST['name'], $origname); - update_alias_names_upon_change(array('nat', 'outbound', 'rule'), array('destination', 'address'), $_POST['name'], $origname); - update_alias_names_upon_change(array('nat', 'outbound', 'rule'), array('dstport'), $_POST['name'], $origname); - update_alias_names_upon_change(array('nat', 'outbound', 'rule'), array('target'), $_POST['name'], $origname); - // Alias in an alias - update_alias_names_upon_change(array('aliases', 'alias'), array('address'), $_POST['name'], $origname); + update_alias_name($_POST['name'], $origname); } pfSense_handle_custom_code("/usr/local/pkg/firewall_aliases_edit/pre_write_config");