]> git.proxmox.com Git - mirror_iproute2.git/blobdiff - tc/tc.c
tc flower: fix parsing vlan_id and vlan_prio
[mirror_iproute2.git] / tc / tc.c
diff --git a/tc/tc.c b/tc/tc.c
index 37294b31c7dcb8d7c58fec4327b07aef4cc5fd21..af9b21dae1fcd0bc2d8c28c889b51b74581d27ce 100644 (file)
--- a/tc/tc.c
+++ b/tc/tc.c
 #include <string.h>
 #include <errno.h>
 
-#include "SNAPSHOT.h"
+#include "version.h"
 #include "utils.h"
 #include "tc_util.h"
 #include "tc_common.h"
 #include "namespace.h"
+#include "rt_names.h"
 
 int show_stats;
 int show_details;
@@ -43,7 +44,7 @@ bool use_names;
 int json;
 int color;
 int oneline;
-int numeric;
+int brief;
 
 static char *conf_file;
 
@@ -202,7 +203,8 @@ static void usage(void)
                "       OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[aw] |\n"
                "                   -o[neline] | -j[son] | -p[retty] | -c[olor]\n"
                "                   -b[atch] [filename] | -n[etns] name | -N[umeric] |\n"
-               "                    -nm | -nam[es] | { -cf | -conf } path }\n");
+               "                    -nm | -nam[es] | { -cf | -conf } path\n"
+               "                    -br[ief] }\n");
 }
 
 static int do_cmd(int argc, char **argv)
@@ -231,22 +233,16 @@ static int do_cmd(int argc, char **argv)
        return -1;
 }
 
+static int tc_batch_cmd(int argc, char *argv[], void *data)
+{
+       return do_cmd(argc, argv);
+}
+
 static int batch(const char *name)
 {
-       char *line = NULL;
-       size_t len = 0;
-       int ret = 0;
+       int ret;
 
        batch_mode = 1;
-       if (name && strcmp(name, "-") != 0) {
-               if (freopen(name, "r", stdin) == NULL) {
-                       fprintf(stderr,
-                               "Cannot open file \"%s\" for reading: %s\n",
-                               name, strerror(errno));
-                       return -1;
-               }
-       }
-
        tc_core_init();
 
        if (rtnl_open(&rth, 0) < 0) {
@@ -254,26 +250,8 @@ static int batch(const char *name)
                return -1;
        }
 
-       cmdlineno = 0;
-       while (getcmdline(&line, &len, stdin) != -1) {
-               char *largv[100];
-               int largc;
-
-               largc = makeargs(line, largv, 100);
-               if (largc == 0)
-                       continue;       /* blank line */
-
-               if (do_cmd(largc, largv)) {
-                       fprintf(stderr, "Command failed %s:%d\n",
-                               name, cmdlineno);
-                       ret = 1;
-                       if (!force)
-                               break;
-               }
-               fflush(stdout);
-       }
+       ret = do_batch(name, force, tc_batch_cmd, NULL);
 
-       free(line);
        rtnl_close(&rth);
        return ret;
 }
@@ -299,7 +277,7 @@ int main(int argc, char **argv)
                } else if (matches(argv[1], "-graph") == 0) {
                        show_graph = 1;
                } else if (matches(argv[1], "-Version") == 0) {
-                       printf("tc utility, iproute2-ss%s\n", SNAPSHOT);
+                       printf("tc utility, iproute2-%s\n", version);
                        return 0;
                } else if (matches(argv[1], "-iec") == 0) {
                        ++use_iec;
@@ -336,6 +314,8 @@ int main(int argc, char **argv)
                        ++json;
                } else if (matches(argv[1], "-oneline") == 0) {
                        ++oneline;
+               }else if (matches(argv[1], "-brief") == 0) {
+                       ++brief;
                } else {
                        fprintf(stderr,
                                "Option \"%s\" is unknown, try \"tc -help\".\n",