summaryrefslogtreecommitdiff
path: root/lib/Vyatta/NatRuleCommon.pm
diff options
context:
space:
mode:
authorDaniil Baturin <daniil.baturin@vyatta.com>2012-12-12 07:07:59 -0800
committerDaniil Baturin <daniil.baturin@vyatta.com>2012-12-12 07:07:59 -0800
commit88c4718379a463c5483ff41bcb85c8bcc4853957 (patch)
treeebcdcca110702425944aca5c7e5df098909c3e4b /lib/Vyatta/NatRuleCommon.pm
parent2fe9271c46aaaa06daf6df2626766be6aa83b444 (diff)
downloadvyatta-nat-88c4718379a463c5483ff41bcb85c8bcc4853957.tar.gz
vyatta-nat-88c4718379a463c5483ff41bcb85c8bcc4853957.zip
Bug 8337: don't disallow using source and destination with
multiport at the same time.
Diffstat (limited to 'lib/Vyatta/NatRuleCommon.pm')
-rw-r--r--lib/Vyatta/NatRuleCommon.pm16
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/Vyatta/NatRuleCommon.pm b/lib/Vyatta/NatRuleCommon.pm
index afde084..f0763ff 100644
--- a/lib/Vyatta/NatRuleCommon.pm
+++ b/lib/Vyatta/NatRuleCommon.pm
@@ -34,7 +34,7 @@ use Vyatta::TypeChecker;
require Exporter;
our @ISA = qw(Exporter);
-our @EXPORT = qw(is_disabled get_num_ipt_rules get_log_prefix output_xml_elem);
+our @EXPORT = qw(is_disabled get_num_ipt_rules get_log_prefix output_xml_elem make_src_dst_str);
sub is_disabled {
my $self = shift;
@@ -74,6 +74,20 @@ sub output_xml_elem {
print $fh " <$name>$value</$name>\n";
}
+# Single port option must be before multiport one,
+# rearrange if needed
+sub make_src_dst_str {
+ my ($src_str, $dst_str) = @_;
+ my $src_dst_str;
+ if (grep /multiport/, $src_str) {
+ $src_dst_str = " $dst_str $src_str ";
+ } elsif (grep /multiport/, $dst_str) {
+ $src_dst_str = " $src_str $dst_str ";
+ } else {
+ $src_dst_str = " $src_str $dst_str ";
+ }
+ return $src_dst_str;
+}
1;