summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIldar Ibragimov <dar.quonb@gmail.com>2017-10-24 18:33:40 +0200
committerIldar Ibragimov <dar.quonb@gmail.com>2017-10-24 18:33:40 +0200
commit1d07954e0c8949f6d48f6c2aa3b04f1a017092f7 (patch)
tree35ad5cabaa72d6d12e1fcf35ecb27e63b9d0734b
parentd078bba33249cc4099b92825eb8d9e7d4373ce67 (diff)
downloadvyatta-nat-1d07954e0c8949f6d48f6c2aa3b04f1a017092f7.tar.gz
vyatta-nat-1d07954e0c8949f6d48f6c2aa3b04f1a017092f7.zip
Fix protocol negation in NAT (like it is done in Vyatta::IpTables::Rule)
-rw-r--r--lib/Vyatta/DstNatRule.pm6
-rw-r--r--lib/Vyatta/SrcNatRule.pm8
2 files changed, 9 insertions, 5 deletions
diff --git a/lib/Vyatta/DstNatRule.pm b/lib/Vyatta/DstNatRule.pm
index e2aa483..bd54306 100644
--- a/lib/Vyatta/DstNatRule.pm
+++ b/lib/Vyatta/DstNatRule.pm
@@ -158,8 +158,10 @@ sub rule_str {
if (defined($self->{_proto})) {
my $str = $self->{_proto};
my $negate ="";
- $negate = "!" if (m/^\!(.*)$/);
- $str =~ s/^\!(.*)$/ $1/;
+ if ($str =~ /^\!(.*)$/) {
+ $str = $1;
+ $negate = "!";
+ }
if ($str eq 'tcp_udp') {
$tcp_and_udp = 1;
$rule_str .= " -p tcp "; # we'll add the '-p udp' to 2nd rule later
diff --git a/lib/Vyatta/SrcNatRule.pm b/lib/Vyatta/SrcNatRule.pm
index 89623a4..52227a5 100644
--- a/lib/Vyatta/SrcNatRule.pm
+++ b/lib/Vyatta/SrcNatRule.pm
@@ -176,9 +176,11 @@ sub rule_str {
if (defined($self->{_proto})) {
my $str = $self->{_proto};
- my $negate ="";
- $negate = "!" if (m/^\!(.*)$/);
- $str =~ s/^\!(.*)$/ $1/;
+ my $negate = "";
+ if ($str =~ /^\!(.*)$/) {
+ $str = $1;
+ $negate = "!";
+ }
if ($str eq 'tcp_udp') {
$tcp_and_udp = 1;
$rule_str .= " -p tcp "; # we'll add the '-p udp' to 2nd rule later