diff options
Diffstat (limited to 'lib/Vyatta/Conntrack/RuleCT.pm')
-rw-r--r-- | lib/Vyatta/Conntrack/RuleCT.pm | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/Vyatta/Conntrack/RuleCT.pm b/lib/Vyatta/Conntrack/RuleCT.pm index b472e51..e8d9626 100644 --- a/lib/Vyatta/Conntrack/RuleCT.pm +++ b/lib/Vyatta/Conntrack/RuleCT.pm @@ -83,7 +83,16 @@ sub rule { } elsif ($self->{_protocol} eq "other") { $rule .= " -p all"; } - $rule .= " $srcrule $dstrule "; + + # make sure multiport is always behind single port option + if ((grep /multiport/, $srcrule)) { + $rule .= " $dstrule $srcrule "; + } elsif ((grep /multiport/, $dstrule)) { + $rule .= " $srcrule $dstrule "; + } else { + $rule .= " $srcrule $dstrule "; + } + return $rule; } |