From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Hemminger Subject: [PATCH iproute2-next 1/9] tc: use JSON in error handling Date: Mon, 9 Jul 2018 12:48:48 -0700 Message-ID: <20180709194856.18922-2-stephen@networkplumber.org> References: <20180709194856.18922-1-stephen@networkplumber.org> Cc: Stephen Hemminger To: netdev@vger.kernel.org Return-path: Received: from mail-pf0-f179.google.com ([209.85.192.179]:44257 "EHLO mail-pf0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932939AbeGITtA (ORCPT ); Mon, 9 Jul 2018 15:49:00 -0400 Received: by mail-pf0-f179.google.com with SMTP id j3-v6so14366084pfh.11 for ; Mon, 09 Jul 2018 12:49:00 -0700 (PDT) In-Reply-To: <20180709194856.18922-1-stephen@networkplumber.org> Sender: netdev-owner@vger.kernel.org List-ID: From: Stephen Hemminger If option or qdisc is unknown, still output in JSON. Signed-off-by: Stephen Hemminger --- tc/tc.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/tc/tc.c b/tc/tc.c index 0d223281ba25..b6d2a6151793 100644 --- a/tc/tc.c +++ b/tc/tc.c @@ -56,9 +56,11 @@ static struct filter_util *filter_list; static int print_noqopt(struct qdisc_util *qu, FILE *f, struct rtattr *opt) { - if (opt && RTA_PAYLOAD(opt)) - fprintf(f, "[Unknown qdisc, optlen=%u] ", - (unsigned int) RTA_PAYLOAD(opt)); + if (opt && RTA_PAYLOAD(opt)) { + print_string(PRINT_JSON, "qdisc", NULL, "UNKNOWN"); + print_uint(PRINT_ANY, "optlen", "[Unknown qdisc, optlen=%u] ", + RTA_PAYLOAD(opt)); + } return 0; } @@ -76,11 +78,12 @@ static int parse_noqopt(struct qdisc_util *qu, int argc, char **argv, static int print_nofopt(struct filter_util *qu, FILE *f, struct rtattr *opt, __u32 fhandle) { - if (opt && RTA_PAYLOAD(opt)) - fprintf(f, "fh %08x [Unknown filter, optlen=%u] ", - fhandle, (unsigned int) RTA_PAYLOAD(opt)); - else if (fhandle) - fprintf(f, "fh %08x ", fhandle); + if (opt && RTA_PAYLOAD(opt)) { + print_0xhex(PRINT_ANY, "handle", "fh %08x ", fhandle); + print_uint(PRINT_ANY, "optlen", "[Unknown filter, optlen=%u] ", + RTA_PAYLOAD(opt)); + } else if (fhandle) + print_0xhex(PRINT_ANY, "handle", "fh %08x ", fhandle); return 0; } -- 2.18.0