]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
Fix half-working ipv6 limit invert check (Phil Oester)
authorPhil Oester <kernel@linuxace.com>
Tue, 21 Sep 2004 10:49:13 +0000 (10:49 +0000)
committerPatrick McHardy <kaber@trash.net>
Tue, 21 Sep 2004 10:49:13 +0000 (10:49 +0000)
extensions/libip6t_limit.c

index e141d01bbf9961ea3e04b18b68032cfd6bc7ac14..5084946afbdf474d7836111e7ede53d6d3554545 100644 (file)
@@ -104,19 +104,14 @@ parse(int c, char **argv, int invert, unsigned int *flags,
 
        switch(c) {
        case '%':
-               if (check_inverse(optarg, &invert, NULL, 0))
-                       exit_error(PARAMETER_PROBLEM,
-                                  "Unexpected `!' after --limit");
+               if (check_inverse(argv[optind-1], &invert, &optind, 0)) break;
                if (!parse_rate(optarg, &r->avg))
                        exit_error(PARAMETER_PROBLEM,
                                   "bad rate `%s'", optarg);
                break;
 
        case '$':
-               if (check_inverse(optarg, &invert, NULL, 0))
-                       exit_error(PARAMETER_PROBLEM,
-                                  "Unexpected `!' after --limit-burst");
-
+               if (check_inverse(argv[optind-1], &invert, &optind, 0)) break;
                if (string_to_number(optarg, 0, 10000, &num) == -1)
                        exit_error(PARAMETER_PROBLEM,
                                   "bad --limit-burst `%s'", optarg);
@@ -127,6 +122,10 @@ parse(int c, char **argv, int invert, unsigned int *flags,
                return 0;
        }
 
+       if (invert)
+               exit_error(PARAMETER_PROBLEM,
+                          "limit does not support invert");
+
        return 1;
 }