Fix classifier help
commit c504ffd627ac211eebf5ed34ef0fbfd7f1dbb347
Author: Patrick McHardy <kaber@trash.net>
Date: Wed Mar 26 07:38:43 2008 +0100
[IPROUTE]: Fix classifier help
The new check whether the user has specified a protocol makes
"ip filter <type> help" fails with "protocol is required".
This could be fixed by moving it further down, but a more user-friendly
way it to simply use ETH_P_ALL as default if nothing is specified.
Signed-off-by: Patrick McHardy <kaber@trash.net>
diff --git a/tc/tc_filter.c b/tc/tc_filter.c
index d70c656..6701f9a 100644
--- a/tc/tc_filter.c
+++ b/tc/tc_filter.c
@@ -54,7 +54,8 @@
} req;
struct filter_util *q = NULL;
__u32 prio = 0;
- __u32 protocol = 0;
+ __u32 protocol = ETH_P_ALL;
+ int protocol_set = 0;
char *fhandle = NULL;
char d[16];
char k[16];
@@ -106,11 +107,12 @@
} else if (matches(*argv, "protocol") == 0) {
__u16 id;
NEXT_ARG();
- if (protocol)
+ if (protocol_set)
duparg("protocol", *argv);
if (ll_proto_a2n(&id, *argv))
invarg(*argv, "invalid protocol");
protocol = id;
+ protocol_set = 1;
} else if (matches(*argv, "estimator") == 0) {
if (parse_estimator(&argc, &argv, &est) < 0)
return -1;
@@ -127,11 +129,6 @@
argc--; argv++;
}
- if (!protocol) {
- fprintf(stderr, "\"protocol\" is required.\n");
- return -1;
- }
-
req.t.tcm_info = TC_H_MAKE(prio<<16, protocol);
if (k[0])