2013-09-24 11:37:24 +00:00
|
|
|
From 3c4b5a852d5bb9070c7fb4428aa50f2e3e1f6e1b Mon Sep 17 00:00:00 2001
|
|
|
|
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
|
|
|
Date: Thu, 19 Sep 2013 11:25:49 +0200
|
|
|
|
Subject: [PATCH] Confirm success for each tc -batch command
|
|
|
|
MIME-Version: 1.0
|
|
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
|
|
|
|
If `tc -force -batch' is fed by a controlling program from a pipe,
|
|
|
|
it's not possible to recognize when a command has been processes
|
|
|
|
successfully.
|
|
|
|
|
|
|
|
This patch adds an optional `-OK' option to the tc(8) tool, so `tc
|
|
|
|
-force -OK -batch' will print "OK\n" to standard output on each
|
|
|
|
successfully completed tc command.
|
|
|
|
|
|
|
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
|
|
|
---
|
|
|
|
man/man8/tc.8 | 8 +++++++-
|
|
|
|
tc/tc.c | 8 +++++++-
|
|
|
|
2 files changed, 14 insertions(+), 2 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/man/man8/tc.8 b/man/man8/tc.8
|
|
|
|
index e0acfeb..583eae2 100644
|
|
|
|
--- a/man/man8/tc.8
|
|
|
|
+++ b/man/man8/tc.8
|
|
|
|
@@ -49,7 +49,7 @@ DEV
|
|
|
|
.P
|
2015-03-13 16:22:54 +00:00
|
|
|
.ti 8
|
|
|
|
.IR OPTIONS " := {"
|
|
|
|
-\fB[ -force ] -b\fR[\fIatch\fR] \fB[ filename ] \fR|
|
|
|
|
+\fB[ -force ] [ -OK ] -b\fR[\fIatch\fR] \fB[ filename ] \fR|
|
|
|
|
\fB[ \fB-n\fR[\fIetns\fR] name \fB] \fR}
|
2013-09-24 11:37:24 +00:00
|
|
|
|
|
|
|
.ti 8
|
|
|
|
@@ -440,6 +440,12 @@ First failure will cause termination of tc.
|
2015-03-13 16:22:54 +00:00
|
|
|
.RS 4
|
|
|
|
Shows classes as ASCII graph with stats info under each class.
|
2013-09-24 11:37:24 +00:00
|
|
|
|
|
|
|
+.TP
|
|
|
|
+.BR "\-OK"
|
|
|
|
+in batch mode, print
|
|
|
|
+.B OK
|
|
|
|
+and a new line on standard output after each successfully interpreted command.
|
|
|
|
+
|
|
|
|
.SH HISTORY
|
|
|
|
.B tc
|
|
|
|
was written by Alexey N. Kuznetsov and added in Linux 2.2.
|
|
|
|
diff --git a/tc/tc.c b/tc/tc.c
|
|
|
|
index 9b50e74..b43bb47 100644
|
|
|
|
--- a/tc/tc.c
|
|
|
|
+++ b/tc/tc.c
|
|
|
|
@@ -39,6 +39,7 @@ int batch_mode = 0;
|
|
|
|
int resolve_hosts = 0;
|
|
|
|
int use_iec = 0;
|
|
|
|
int force = 0;
|
|
|
|
+int ok = 0;
|
|
|
|
struct rtnl_handle rth;
|
|
|
|
|
|
|
|
static void *BODY = NULL; /* cached handle dlopen(NULL) */
|
|
|
|
@@ -183,7 +184,7 @@ noexist:
|
|
|
|
static void usage(void)
|
|
|
|
{
|
|
|
|
fprintf(stderr, "Usage: tc [ OPTIONS ] OBJECT { COMMAND | help }\n"
|
|
|
|
- " tc [-force] -batch filename\n"
|
|
|
|
+ " tc [-force] [-OK] -batch filename\n"
|
|
|
|
"where OBJECT := { qdisc | class | filter | action | monitor }\n"
|
2015-03-13 16:22:54 +00:00
|
|
|
" OPTIONS := { -s[tatistics] | -d[etails] | -r[aw] | -p[retty] | -b[atch] [filename] | "
|
|
|
|
"-n[etns] name }\n");
|
2013-09-24 11:37:24 +00:00
|
|
|
@@ -251,6 +252,9 @@ static int batch(const char *name)
|
|
|
|
ret = 1;
|
|
|
|
if (!force)
|
|
|
|
break;
|
|
|
|
+ } else if (ok) {
|
|
|
|
+ printf("OK\n");
|
|
|
|
+ fflush(stdout);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (line)
|
|
|
|
@@ -288,6 +292,8 @@ int main(int argc, char **argv)
|
|
|
|
return 0;
|
|
|
|
} else if (matches(argv[1], "-force") == 0) {
|
|
|
|
++force;
|
|
|
|
+ } else if (matches(argv[1], "-OK") == 0) {
|
|
|
|
+ ++ok;
|
|
|
|
} else if (matches(argv[1], "-batch") == 0) {
|
|
|
|
argc--; argv++;
|
|
|
|
if (argc <= 1)
|
|
|
|
--
|
|
|
|
1.8.3.1
|
|
|
|
|