tc: support oneline mode in action generic printer functions

Signed-off-by: Roman Mashak <mrv@mojatatu.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
Roman Mashak 2018-03-31 00:16:45 -04:00 committed by David Ahern
parent 386e37f543
commit c2f60f5c8e

View File

@ -301,19 +301,21 @@ static int tc_print_one_action(FILE *f, struct rtattr *arg)
return err; return err;
if (show_stats && tb[TCA_ACT_STATS]) { if (show_stats && tb[TCA_ACT_STATS]) {
print_string(PRINT_FP, NULL, "\tAction statistics:\n", NULL); print_string(PRINT_FP, NULL, "\tAction statistics:", NULL);
print_string(PRINT_FP, NULL, "%s", _SL_);
open_json_object("stats"); open_json_object("stats");
print_tcstats2_attr(f, tb[TCA_ACT_STATS], "\t", NULL); print_tcstats2_attr(f, tb[TCA_ACT_STATS], "\t", NULL);
close_json_object(); close_json_object();
print_string(PRINT_FP, NULL, "\n", NULL); print_string(PRINT_FP, NULL, "%s", _SL_);
} }
if (tb[TCA_ACT_COOKIE]) { if (tb[TCA_ACT_COOKIE]) {
int strsz = RTA_PAYLOAD(tb[TCA_ACT_COOKIE]); int strsz = RTA_PAYLOAD(tb[TCA_ACT_COOKIE]);
char b1[strsz * 2 + 1]; char b1[strsz * 2 + 1];
print_string(PRINT_ANY, "cookie", "\tcookie %s\n", print_string(PRINT_ANY, "cookie", "\tcookie %s",
hexstring_n2a(RTA_DATA(tb[TCA_ACT_COOKIE]), hexstring_n2a(RTA_DATA(tb[TCA_ACT_COOKIE]),
strsz, b1, sizeof(b1))); strsz, b1, sizeof(b1)));
print_string(PRINT_FP, NULL, "%s", _SL_);
} }
return 0; return 0;
@ -369,8 +371,9 @@ tc_print_action(FILE *f, const struct rtattr *arg, unsigned short tot_acts)
for (i = 0; i <= tot_acts; i++) { for (i = 0; i <= tot_acts; i++) {
if (tb[i]) { if (tb[i]) {
open_json_object(NULL); open_json_object(NULL);
print_string(PRINT_FP, NULL, "%s", _SL_);
print_uint(PRINT_ANY, "order", print_uint(PRINT_ANY, "order",
"\n\taction order %u: ", i); "\taction order %u: ", i);
if (tc_print_one_action(f, tb[i]) < 0) { if (tc_print_one_action(f, tb[i]) < 0) {
print_string(PRINT_FP, NULL, print_string(PRINT_FP, NULL,
"Error printing action\n", NULL); "Error printing action\n", NULL);
@ -410,6 +413,7 @@ int print_action(const struct sockaddr_nl *who,
open_json_object(NULL); open_json_object(NULL);
print_uint(PRINT_ANY, "total acts", "total acts %u", print_uint(PRINT_ANY, "total acts", "total acts %u",
tot_acts ? *tot_acts : 0); tot_acts ? *tot_acts : 0);
print_string(PRINT_FP, NULL, "%s", _SL_);
close_json_object(); close_json_object();
if (tb[TCA_ACT_TAB] == NULL) { if (tb[TCA_ACT_TAB] == NULL) {
if (n->nlmsg_type != RTM_GETACTION) if (n->nlmsg_type != RTM_GETACTION)