From 0a2eb1d52084b3899f2ff4645cfe0cd4a78f0263 Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Sun, 29 Mar 2015 21:47:13 -0700 Subject: [PATCH] --to-source can be followed by just a :port --- firewall/edit_rule.cgi | 2 +- firewall/save_rule.cgi | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/firewall/edit_rule.cgi b/firewall/edit_rule.cgi index 443069f51..1d4438f39 100755 --- a/firewall/edit_rule.cgi +++ b/firewall/edit_rule.cgi @@ -155,7 +155,7 @@ if (($table->{'name'} eq 'nat' && $rule->{'chain'} ne 'PREROUTING' && &can_jump("SNAT")) { if ($rule->{'j'}->[1] eq 'SNAT') { if ($rule->{'to-source'}->[1] =~ - /^([0-9\.]+)(\-([0-9\.]+))?(:(\d+)(\-(\d+))?)?$/) { + /^([0-9\.]+)?(\-([0-9\.]+))?(:(\d+)(\-(\d+))?)?$/) { $sipfrom = $1; $sipto = $3; $spfrom = $5; diff --git a/firewall/save_rule.cgi b/firewall/save_rule.cgi index e2fdd2ed1..46ab3ac14 100755 --- a/firewall/save_rule.cgi +++ b/firewall/save_rule.cgi @@ -116,7 +116,8 @@ else { if ($table->{'name'} eq 'nat' && $rule->{'chain'} ne 'PREROUTING' && $rule->{'chain'} ne 'OUTPUT') { if ($rule->{'j'}->[1] eq 'SNAT' && !$in{'snatdef'}) { - &check_ipaddress($in{'sipfrom'}) || + (!$in{'sipfrom'} && !$in{'sipto'}) || + &check_ipaddress($in{'sipfrom'}) || &error($text{'save_esipfrom'}); !$in{'sipto'} || &check_ipaddress($in{'sipto'}) || &error($text{'save_esipto'});