From: Julien Fortin Date: Wed, 29 Jul 2020 13:04:25 +0000 (+0200) Subject: bridge: fdb show: fix fdb entry state output for json context X-Git-Tag: v5.8.0~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cb17e0cc578162a33d62afcbf9df471183a6b0c7;p=thirdparty%2Fiproute2.git bridge: fdb show: fix fdb entry state output for json context bridge json fdb show is printing an incorrect / non-machine readable value, when using -j (json output) we are expecting machine readable data that shouldn't require special handling/parsing. $ bridge -j fdb show | \ python -c \ 'import sys,json;print(json.dumps(json.loads(sys.stdin.read()),indent=4))' [ { "master": "br0", "mac": "56:23:28:4f:4f:e5", "flags": [], "ifname": "vx0", "state": "state=0x80" <<<<<<<<< with the patch: "state": "0x80" } ] Fixes: c7c1a1ef51aea7c ("bridge: colorize output and use JSON print library") Signed-off-by: Julien Fortin Signed-off-by: Stephen Hemminger --- diff --git a/bridge/fdb.c b/bridge/fdb.c index 118fd5238..06a2254b7 100644 --- a/bridge/fdb.c +++ b/bridge/fdb.c @@ -64,7 +64,10 @@ static const char *state_n2a(unsigned int s) if (s & NUD_REACHABLE) return ""; - sprintf(buf, "state=%#x", s); + if (is_json_context()) + sprintf(buf, "%#x", s); + else + sprintf(buf, "state=%#x", s); return buf; }