diff options
author | Patrick McHardy <kaber@trash.net> | 2004-09-18 17:43:36 +0000 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2004-09-18 17:43:36 +0000 |
commit | d0a2e8adfaa8bc60f2c52f64ab32ca11d00e49db (patch) | |
tree | 0fe0f2d489fd7c02daed2ec2b67db122b3aa7e20 /extensions/libipt_mport.c | |
parent | 13218fbdc92e704953d01333ea10bd623821b71e (diff) |
Print error when '!' is used with multiport. Based on patch by Phil Oester.
Diffstat (limited to 'extensions/libipt_mport.c')
-rw-r--r-- | extensions/libipt_mport.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/extensions/libipt_mport.c b/extensions/libipt_mport.c index 2ae61ff4..28568db0 100644 --- a/extensions/libipt_mport.c +++ b/extensions/libipt_mport.c @@ -136,6 +136,7 @@ parse(int c, char **argv, int invert, unsigned int *flags, switch (c) { case '1': + check_inverse(argv[optind-1], &invert, &optind, 0); proto = check_proto(entry); parse_multi_ports(argv[optind-1], minfo, proto); minfo->flags = IPT_MPORT_SOURCE; @@ -143,6 +144,7 @@ parse(int c, char **argv, int invert, unsigned int *flags, break; case '2': + check_inverse(argv[optind-1], &invert, &optind, 0); proto = check_proto(entry); parse_multi_ports(argv[optind-1], minfo, proto); minfo->flags = IPT_MPORT_DESTINATION; @@ -150,6 +152,7 @@ parse(int c, char **argv, int invert, unsigned int *flags, break; case '3': + check_inverse(argv[optind-1], &invert, &optind, 0); proto = check_proto(entry); parse_multi_ports(argv[optind-1], minfo, proto); minfo->flags = IPT_MPORT_EITHER; @@ -160,6 +163,10 @@ parse(int c, char **argv, int invert, unsigned int *flags, return 0; } + if (invert) + exit_error(PARAMETER_PROBLEM, + "multiport does not support invert"); + if (*flags) exit_error(PARAMETER_PROBLEM, "multiport can only have one option"); |