diff --git a/firewall/edit_rule.cgi b/firewall/edit_rule.cgi index 15e4fd771..443069f51 100755 --- a/firewall/edit_rule.cgi +++ b/firewall/edit_rule.cgi @@ -132,6 +132,12 @@ if (($table->{'name'} eq 'nat' && $rule->{'chain'} ne 'POSTROUTING') && $dpfrom = $5; $dpto = $7; } + elsif ($rule->{'to-destination'}->[1] =~ /^(:(\d+)(\-(\d+))?)?$/) { + $dipfrom = ""; + $dipto = ""; + $dpfrom = $2; + $dpto = $4; + } } print &ui_table_row($text{'edit_dnat'}, &ui_radio("dnatdef", $dipfrom eq "" ? 1 : 0, diff --git a/firewall/save_rule.cgi b/firewall/save_rule.cgi index 3d168ec77..e2fdd2ed1 100755 --- a/firewall/save_rule.cgi +++ b/firewall/save_rule.cgi @@ -89,7 +89,7 @@ else { } if ($table->{'name'} eq 'nat' && $rule->{'chain'} ne 'POSTROUTING') { if ($rule->{'j'}->[1] eq 'DNAT' && !$in{'dnatdef'}) { - &check_ipaddress($in{'dipfrom'}) || + !$in{'dipfrom'} || &check_ipaddress($in{'dipfrom'}) || &error($text{'save_edipfrom'}); !$in{'dipto'} || &check_ipaddress($in{'dipto'}) || &error($text{'save_edipto'});