From 5810cc7a31f94333f6b7ef4103c03218a9bb63a2 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Thu, 16 Aug 2018 10:35:39 +0200 Subject: [PATCH] firewall: fix more glitches in outbound alias target --- .../mvc/app/library/OPNsense/Firewall/SNatRule.php | 2 +- src/www/firewall_nat_out_edit.php | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/opnsense/mvc/app/library/OPNsense/Firewall/SNatRule.php b/src/opnsense/mvc/app/library/OPNsense/Firewall/SNatRule.php index 29ef8d7ce..b18c86f65 100644 --- a/src/opnsense/mvc/app/library/OPNsense/Firewall/SNatRule.php +++ b/src/opnsense/mvc/app/library/OPNsense/Firewall/SNatRule.php @@ -91,7 +91,7 @@ class SNatRule extends Rule $rule['target'] = $rule['targetip'] . '/' . $rule['targetip_subnet']; } elseif (!empty($rule['target']) && Util::isAlias($rule['target'])) { $rule['target'] = "$".$rule['target']; - if (empty($rule['poolopts']) || substr($rule['poolopts'], 0, 11) != 'round-robin') { + if (!empty($rule['poolopts']) && substr($rule['poolopts'], 0, 11) != 'round-robin') { // wrong pool type on alias, disable rule $this->log('SNAT / pool type not round-robin'); $rule['disabled'] = true; diff --git a/src/www/firewall_nat_out_edit.php b/src/www/firewall_nat_out_edit.php index fbd4ab628..5326cd8e3 100644 --- a/src/www/firewall_nat_out_edit.php +++ b/src/www/firewall_nat_out_edit.php @@ -134,6 +134,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $pconfig['ipprotocol'] = 'inet'; } } + if (empty($pconfig['targetip'])) { + $pconfig['targetip'] = $pconfig['target']; + } } elseif ($_SERVER['REQUEST_METHOD'] === 'POST') { $input_errors = array(); $pconfig = $_POST; @@ -186,7 +189,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $input_errors[] = gettext("A valid target IP address must be specified."); } /* Verify Pool Options */ - if (!empty($pconfig['targetip']) && is_alias($pconfig['targetip']) && substr($pconfig['poolopts'], 0, 11) != 'round-robin') { + if (!empty($pconfig['targetip']) && is_alias($pconfig['targetip']) && !empty($pconfig['poolopts']) && substr($pconfig['poolopts'], 0, 11) != 'round-robin') { $input_errors[] = gettext("Only Round Robin pool options may be chosen when selecting an alias."); } @@ -642,9 +645,9 @@ include("head.inc");