summaryrefslogtreecommitdiff
path: root/scripts/VyattaNatRule.pm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/VyattaNatRule.pm')
-rw-r--r--scripts/VyattaNatRule.pm33
1 files changed, 28 insertions, 5 deletions
diff --git a/scripts/VyattaNatRule.pm b/scripts/VyattaNatRule.pm
index 1daa336..e7316c0 100644
--- a/scripts/VyattaNatRule.pm
+++ b/scripts/VyattaNatRule.pm
@@ -81,8 +81,14 @@ sub setup {
$self->{_proto} = $config->returnValue("protocol");
$self->{_exclude} = $config->exists("exclude");
+ $self->{_source}->{_net} = undef;
$self->{_source}->{_addr} = $config->returnValue("source address");
- $self->{_source}->{_net} = $config->returnValue("source network");
+ if (defined($self->{_source}->{_addr})
+ && ($self->{_source}->{_addr} =~ /\//)) {
+ $self->{_source}->{_net} = $self->{_source}->{_addr};
+ $self->{_source}->{_addr} = undef;
+ }
+
my @tmp = $config->returnValues("source port-number");
$self->{_source}->{_port_num} = [ @tmp ];
@tmp = $config->returnValues("source port-name");
@@ -92,8 +98,14 @@ sub setup {
$self->{_source}->{_port_range}->{_stop}
= $config->returnValue("source port-range stop");
+ $self->{_destination}->{_net} = undef;
$self->{_destination}->{_addr} = $config->returnValue("destination address");
- $self->{_destination}->{_net} = $config->returnValue("destination network");
+ if (defined($self->{_destination}->{_addr})
+ && ($self->{_destination}->{_addr} =~ /\//)) {
+ $self->{_destination}->{_net} = $self->{_destination}->{_addr};
+ $self->{_destination}->{_addr} = undef;
+ }
+
@tmp = $config->returnValues("destination port-number");
$self->{_destination}->{_port_num} = [ @tmp ];
@tmp = $config->returnValues("destination port-name");
@@ -145,8 +157,14 @@ sub setupOrig {
$self->{_proto} = $config->returnOrigValue("protocol");
$self->{_exclude} = $config->existsOrig("exclude");
+ $self->{_source}->{_net} = undef;
$self->{_source}->{_addr} = $config->returnOrigValue("source address");
- $self->{_source}->{_net} = $config->returnOrigValue("source network");
+ if (defined($self->{_source}->{_addr})
+ && ($self->{_source}->{_addr} =~ /\//)) {
+ $self->{_source}->{_net} = $self->{_source}->{_addr};
+ $self->{_source}->{_addr} = undef;
+ }
+
my @tmp = $config->returnOrigValues("source port-number");
$self->{_source}->{_port_num} = [ @tmp ];
@tmp = $config->returnOrigValues("source port-name");
@@ -156,10 +174,15 @@ sub setupOrig {
$self->{_source}->{_port_range}->{_stop}
= $config->returnOrigValue("source port-range stop");
+ $self->{_destination}->{_net} = undef;
$self->{_destination}->{_addr}
= $config->returnOrigValue("destination address");
- $self->{_destination}->{_net}
- = $config->returnOrigValue("destination network");
+ if (defined($self->{_destination}->{_addr})
+ && ($self->{_destination}->{_addr} =~ /\//)) {
+ $self->{_destination}->{_net} = $self->{_destination}->{_addr};
+ $self->{_destination}->{_addr} = undef;
+ }
+
@tmp = $config->returnOrigValues("destination port-number");
$self->{_destination}->{_port_num} = [ @tmp ];
@tmp = $config->returnOrigValues("destination port-name");