my $ports = shift;
my $type = shift;
- my $arg;
- if ($type eq "src") {
- $arg = "--sport";
- } elsif ($type eq "dst") {
- $arg = "--dport";
- }
-
my @options = ();
+ # Handle multiple ports
if ($ports =~ /\|/) {
$ports =~ s/\|/,/g;
+
+ # Enable multiport match
push(@options, ("-m", "multiport"));
- }
- if ($ports) {
- push(@options, ($arg, $ports));
+ if ($type eq "src") {
+ push(@options, "--source-ports", ${ports});
+ } elsif ($type eq "dst") {
+ push(@options, "--destination-ports", ${ports});
+ }
+
+ # Handle single ports
+ } else {
+ if ($type eq "src") {
+ push(@options, "--sport", ${ports});
+ } elsif ($type eq "dst") {
+ push(@options, "--dport", ${ports});
+ }
}
return @options;