summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErik Fonnesbeck <efonnes@gmail.com>2010-05-03 20:05:11 -0600
committerErik Fonnesbeck <efonnes@gmail.com>2010-05-03 20:05:11 -0600
commitc6bfc426ef13f0d59493ebef79ea244aa9baac1f (patch)
treeee51f77e2dadbfc6a737971608380dd62c8b5f81
parente5995f9dd8ae7d5ee76f58d619464d01555cbd6e (diff)
downloadpfsense-c6bfc426ef13f0d59493ebef79ea244aa9baac1f.zip
pfsense-c6bfc426ef13f0d59493ebef79ea244aa9baac1f.tar.gz
Move the reflection enabled check out of filter_generate_reflection, so this function can be used elsewhere regardless of the system setting for it (in preparation for reflection support on 1:1 NAT mappings).
-rw-r--r--etc/inc/filter.inc13
1 files changed, 8 insertions, 5 deletions
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc
index ed16434..288da31 100644
--- a/etc/inc/filter.inc
+++ b/etc/inc/filter.inc
@@ -798,7 +798,7 @@ function filter_generate_reflection($rule, $nordr, $rdr_ifs, $srcaddr, $dstport,
$natrules = "";
$reflection_txt = array();
- if(!isset($config['system']['disablenatreflection'])) {
+ if(!empty($rdr_ifs)) {
if($config['system']['reflectiontimeout'])
$reflectiontimeout = $config['system']['reflectiontimeout'];
else
@@ -806,9 +806,6 @@ function filter_generate_reflection($rule, $nordr, $rdr_ifs, $srcaddr, $dstport,
update_filter_reload_status("Creating reflection rule for {$rule['descr']}...");
- if(empty($rdr_ifs))
- return "";
-
$rdr_if_list = implode(" ", $rdr_ifs);
if(count($rdr_ifs) > 1)
$rdr_if_list = "{ {$rdr_if_list} }";
@@ -1257,6 +1254,12 @@ function filter_nat_rules_generate() {
else
$nordr = "";
+ if(!isset($config['system']['disablenatreflection'])) {
+ $nat_if_list = filter_get_reflection_interfaces($natif);
+ } else {
+ $nat_if_list = array();
+ }
+
if($srcaddr <> "" && $dstaddr <> "") {
/* is rule a port range? */
if($natif)
@@ -1271,7 +1274,7 @@ function filter_nat_rules_generate() {
$natrules .= "no nat on {$natif} proto tcp from ({$natif}) to {$rule_subnet}/{$rule_interface_subnet}\n";
$natrules .= "nat on {$natif} proto tcp from {$rule_subnet}/{$rule_interface_subnet} to {$target} port {$dstport[0]} -> ({$natif})\n";
}
- $natrules .= filter_generate_reflection($rule, $nordr, filter_get_reflection_interfaces($natif), $srcaddr, $dstport, $starting_localhost_port, $reflection_rules);
+ $natrules .= filter_generate_reflection($rule, $nordr, $nat_if_list, $srcaddr, $dstport, $starting_localhost_port, $reflection_rules);
$natrules .= "\n";
foreach ($reflection_rules as $txtline)
OpenPOWER on IntegriCloud