]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
First part of cleaning up the help output of actions.
authorJamal Hadi Salim <hadi@cyberus.ca>
Tue, 8 Aug 2006 19:10:08 +0000 (12:10 -0700)
committerStephen Hemminger <shemminger@osdl.org>
Tue, 8 Aug 2006 19:10:08 +0000 (12:10 -0700)
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
tc/m_action.c
tc/m_gact.c
tc/m_mirred.c
tc/m_pedit.c
tc/m_police.c

index c67bc8836b845fb6b84e20448832a84569250c2a..e11d2f3bd6364e303c4c6d58eacf01ecef418842 100644 (file)
@@ -58,6 +58,7 @@ void act_usage(void)
                "\t\tExample ACTNAME is gact, mirred etc\n"
                "\t\tEach action has its own parameters (ACTPARAMS)\n"
                "\n");
+       exit(-1);
 }
 
 static int print_noaopt(struct action_util *au, FILE *f, struct rtattr *opt)
index 3ad872af5dc574f2192da14a2afbc98e8a6355fb..ae75933bd3f10607948f695e4b2cc680a41caa05 100644 (file)
@@ -45,22 +45,28 @@ explain(void)
 #ifdef CONFIG_GACT_PROB
        fprintf(stderr, "Usage: ... gact <ACTION> [RAND] [INDEX]\n");
        fprintf(stderr,
-               "Where: ACTION := reclassify | drop | continue | pass "
-               "RAND := random <RANDTYPE> <ACTION> <VAL>"
-               "RANDTYPE := netrand | determ"
-               "VAL : = value not exceeding 10000"
-               "INDEX := index value used"
+               "Where: \tACTION := reclassify | drop | continue | pass \n"
+                       "\tRAND := random <RANDTYPE> <ACTION> <VAL>\n"
+                       "\tRANDTYPE := netrand | determ\n"
+                       "\tVAL : = value not exceeding 10000\n"
+                       "\tINDEX := index value used\n"
                "\n");
 #else
        fprintf(stderr, "Usage: ... gact <ACTION> [INDEX]\n");
        fprintf(stderr,
-               "Where: ACTION := reclassify | drop | continue | pass "
-               "INDEX := index value used"
+       "Where: \tACTION := reclassify | drop | continue | pass \n"
+               "\tINDEX := index value used\n"
                "\n");
 #endif
 }
 
-#define usage() return(-1)
+static void
+usage(void)
+{
+       explain();
+       exit(-1);
+}
+
 
 int
 get_act(char ***argv_p)
@@ -157,6 +163,8 @@ parse_gact(struct action_util *a, int *argc_p, char ***argv_p, int tca_id, struc
                        }
                        argc--;
                        argv++;
+               } else if (matches(*argv, "help") == 0) {
+                               usage();
                }
        }
 #endif
index cbfea841ef8545e7628434f27e866f55945bf842..ed87c81839b7ca9699abc05f314356c72d350cda 100644 (file)
@@ -33,13 +33,19 @@ explain(void)
 {
        fprintf(stderr, "Usage: mirred <DIRECTION> <ACTION> [index INDEX] <dev DEVICENAME> \n");
        fprintf(stderr, "where: \n");
-       fprintf(stderr, "DIRECTION := <ingress | egress>\n");
-       fprintf(stderr, "aCTION := <mirror | redirect>\n");
-       fprintf(stderr, "     : INDEX  is the specific policy instance id\n");
-       fprintf(stderr, "     : DEVICENAME is the devicename \n");
+       fprintf(stderr, "\tDIRECTION := <ingress | egress>\n");
+       fprintf(stderr, "\tACTION := <mirror | redirect>\n");
+       fprintf(stderr, "\tINDEX  is the specific policy instance id\n");
+       fprintf(stderr, "\tDEVICENAME is the devicename \n");
+
 }
 
-#define usage() return(-1)
+static void
+usage(void)
+{
+       explain();
+       exit(-1);
+}
 
 char *mirred_n2a(int action)
 {
@@ -133,7 +139,6 @@ parse_egress(struct action_util *a, int *argc_p, char ***argv_p, int tca_id, str
        }
 
        if (!ok && !iok) {
-               explain();
                return -1;
        }
 
@@ -235,9 +240,10 @@ parse_mirred(struct action_util *a, int *argc_p, char ***argv_p, int tca_id, str
 
        } else if (matches(*argv, "ingress") == 0) {
                fprintf(stderr,"mirred ingress not supported at the moment\n");
-
+       } else if (matches(*argv, "help") == 0) {
+               usage();
        } else {
-               fprintf(stderr,"mirred not supported %s\n", *argv);
+               fprintf(stderr,"mirred option not supported %s\n", *argv);
        }
 
        return -1;
index acfa581980712af0d112ebb62ea1b8db4203d39d..5ac84a58f4eae84b57a1752b3b3b53a5624125b9 100644 (file)
@@ -33,25 +33,30 @@ static struct m_pedit_util *pedit_list;
 int pedit_debug = 1;
 
 static void
-p_explain(void)
+explain(void)
 {
-       fprintf(stderr, "Usage: ... pedit <MUNGE>\n");
+       fprintf(stderr, "Usage: ... pedit munge <MUNGE>\n");
        fprintf(stderr,
                "Where: MUNGE := <RAW>|<LAYERED>\n" 
-               "<RAW>:= <OFFSETC>[ATC]<CMD>\n "
-               "OFFSETC:= offset <offval> <u8|u16|u32>\n "
-               "ATC:= at <atval> offmask <maskval> shift <shiftval>\n "
-               "NOTE: offval is byte offset, must be multiple of 4\n "
-               "NOTE: maskval is a 32 bit hex number\n "
-               "NOTE: shiftval is a is a shift value\n "
-               "CMD:= clear | invert | set <setval>| retain\n "
-               "<LAYERED>:= ip <ipdata> | ip6 <ip6data> \n "
-               " | udp <udpdata> | tcp <tcpdata> | icmp <icmpdata> \n"
-               "For Example usage look at the examples directory");
+               "\t<RAW>:= <OFFSETC>[ATC]<CMD>\n "
+               "\t\tOFFSETC:= offset <offval> <u8|u16|u32>\n "
+               "\t\tATC:= at <atval> offmask <maskval> shift <shiftval>\n "
+               "\t\tNOTE: offval is byte offset, must be multiple of 4\n "
+               "\t\tNOTE: maskval is a 32 bit hex number\n "
+               "\t\tNOTE: shiftval is a is a shift value\n "
+               "\t\tCMD:= clear | invert | set <setval>| retain\n "
+               "\t<LAYERED>:= ip <ipdata> | ip6 <ip6data> \n "
+               " \t\t| udp <udpdata> | tcp <tcpdata> | icmp <icmpdata> \n"
+               "For Example usage look at the examples directory\n");
 
 }
 
-#define usage() return(-1)
+static void
+usage(void)
+{
+       explain();
+       exit(-1);
+}
 
 static int 
 pedit_parse_nopopt (int *argc_p, char ***argv_p,struct tc_pedit_sel *sel,struct tc_pedit_key *tkey) 
@@ -423,11 +428,6 @@ parse_munge(int *argc_p, char ***argv_p,struct tc_pedit_sel *sel)
                NEXT_ARG();
                res = parse_offset(&argc, &argv,sel,&tkey);
                goto done;
-#if jamal
-       } else if (strcmp(*argv, "help") == 0) {
-               p_explain();
-               return -1;
-#endif
        } else {
                char k[16];
                struct m_pedit_util *p = NULL;
@@ -479,16 +479,18 @@ parse_pedit(struct action_util *a, int *argc_p, char ***argv_p, int tca_id, stru
                        NEXT_ARG();
                        ok++;
                        continue;
+               } else if (matches(*argv, "help") == 0) {
+                       usage();
                } else if (matches(*argv, "munge") == 0) {
                        if (!ok) {
                                fprintf(stderr, "Illegal pedit construct (%s) \n", *argv);
-                               p_explain();
+                               explain();
                                return -1;
                        }
                        NEXT_ARG();
                        if (parse_munge(&argc, &argv,&sel.sel)) {
                                fprintf(stderr, "Illegal pedit construct (%s) \n", *argv);
-                               p_explain();
+                               explain();
                                return -1;
                        }
                        ok++;
@@ -499,7 +501,7 @@ parse_pedit(struct action_util *a, int *argc_p, char ***argv_p, int tca_id, stru
        }
 
        if (!ok) {
-               p_explain();
+               explain();
                return -1;
        }
 
index 71adb594a1a86329d3f701d0b4c4a56a9932e36c..7b803672ab520f43e8f904409bbdc3bcede10530 100644 (file)
@@ -32,7 +32,7 @@ struct action_util police_action_util = {
        .print_aopt = print_police,
 };
 
-static void explain(void)
+static void usage(void)
 {
        fprintf(stderr, "Usage: ... police rate BPS burst BYTES[/BYTES] [ mtu BYTES[/BYTES] ]\n");
        fprintf(stderr, "                [ peakrate BPS ] [ avrate BPS ]\n");
@@ -41,6 +41,7 @@ static void explain(void)
        fprintf(stderr, "New Syntax ACTIONTERM := conform-exceed <EXCEEDACT>[/NOTEXCEEDACT] \n"); 
        fprintf(stderr, "Where: *EXCEEDACT := pipe | ok | reclassify | drop | continue \n");
        fprintf(stderr, "Where:  pipe is only valid for new syntax \n");
+       exit(-1);
 }
 
 static void explain1(char *arg)
@@ -48,9 +49,6 @@ static void explain1(char *arg)
        fprintf(stderr, "Illegal \"%s\"\n", arg);
 }
 
-#define usage() return(-1)
-
-
 char *police_action_n2a(int action, char *buf, int len)
 {
        switch (action) {
@@ -236,8 +234,7 @@ int act_parse_police(struct action_util *a,int *argc_p, char ***argv_p, int tca_
                                return -1;
                        }
                } else if (strcmp(*argv, "help") == 0) {
-                       explain();
-                       return -1;
+                       usage();
                } else {
                        break;
                }