From 6d346c17543ae4250876bd2900e643553bd4f2fa Mon Sep 17 00:00:00 2001 From: Renato Botelho Date: Mon, 19 Apr 2010 11:07:31 -0300 Subject: [PATCH] redirect port range must not use :*, calculate end port and create the correct rule --- etc/inc/filter.inc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc index fc306cdec2..81a2aa46cc 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) {