summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorRenato Botelho <renato.botelho@bluepex.com>2010-04-19 11:07:31 -0300
committerRenato Botelho <renato.botelho@bluepex.com>2010-04-19 11:07:31 -0300
commit6d346c17543ae4250876bd2900e643553bd4f2fa (patch)
tree1aef82c6ad4ef898fdc9677546b7ca9d9ad32f47 /etc
parent50dc3f4113a31adc748a082e0c1ad550f6917b58 (diff)
downloadpfsense-6d346c17543ae4250876bd2900e643553bd4f2fa.zip
pfsense-6d346c17543ae4250876bd2900e643553bd4f2fa.tar.gz
redirect port range must not use :*, calculate end port and create the correct rule
Diffstat (limited to 'etc')
-rw-r--r--etc/inc/filter.inc14
1 files changed, 9 insertions, 5 deletions
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc
index fc306cd..81a2aa4 100644
--- a/etc/inc/filter.inc
+++ b/etc/inc/filter.inc
@@ -1126,13 +1126,17 @@ function filter_nat_rules_generate() {
/* if item is an alias, expand */
$localport = alias_expand($rule['local-port']);
- if(!$localport || $rule['destination']['port'] == $rule['local-port'])
+ if(!$localport || $rule['destination']['port'] == $rule['local-port']) {
$localport = "";
- else
- $localport = " port {$localport}";
+ } else {
+ if(($dstport[1]) && ($dstport[0] != $dstport[1])) {
+ $localendport = $localport + ($dstport[1] - $dstport[0]);
- if(($dstport[1]) && ($dstport[0] != $dstport[1]))
- $localport .= ":*";
+ $localport .= ":$localendport";
+ }
+
+ $localport = " port {$localport}";
+ }
$target = alias_expand($rule['target']);
if(!$target) {
OpenPOWER on IntegriCloud