From: Julien Fortin <jul...@cumulusnetworks.com> 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 <jul...@cumulusnetworks.com> --- bridge/fdb.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bridge/fdb.c b/bridge/fdb.c index 710dfc99..d59bfb34 100644 --- a/bridge/fdb.c +++ b/bridge/fdb.c @@ -62,7 +62,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; } -- 2.27.0