From: Stephen Hemminger Date: Thu, 13 Oct 2022 15:30:34 +0000 (-0700) Subject: u32: fix json formatting of flowid X-Git-Tag: v6.1.0~31 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1ff227545ce1e0e9daf7ecb3eec52ddafff57eb5;p=thirdparty%2Fiproute2.git u32: fix json formatting of flowid The code to print json was not done for the flow id. This would lead to incorrect JSON format output. Signed-off-by: Stephen Hemminger --- diff --git a/tc/f_u32.c b/tc/f_u32.c index d787eb915..e4e0ab121 100644 --- a/tc/f_u32.c +++ b/tc/f_u32.c @@ -1275,12 +1275,14 @@ static int u32_print_opt(struct filter_util *qu, FILE *f, struct rtattr *opt, fprintf(stderr, "divisor and hash missing "); } if (tb[TCA_U32_CLASSID]) { + __u32 classid = rta_getattr_u32(tb[TCA_U32_CLASSID]); SPRINT_BUF(b1); - fprintf(f, "%sflowid %s ", - !sel || !(sel->flags & TC_U32_TERMINAL) ? "*" : "", - sprint_tc_classid(rta_getattr_u32(tb[TCA_U32_CLASSID]), - b1)); - } else if (sel && sel->flags & TC_U32_TERMINAL) { + if (sel && (sel->flags & TC_U32_TERMINAL)) + print_string(PRINT_FP, NULL, "*", NULL); + + print_string(PRINT_ANY, "flowid", "flowid %s ", + sprint_tc_classid(classid, b1)); + } else if (sel && (sel->flags & TC_U32_TERMINAL)) { print_string(PRINT_FP, NULL, "terminal flowid ", NULL); } if (tb[TCA_U32_LINK]) {