From cb17e0cc578162a33d62afcbf9df471183a6b0c7 Mon Sep 17 00:00:00 2001 From: Julien Fortin Date: Wed, 29 Jul 2020 15:04:25 +0200 Subject: [PATCH] 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 --- bridge/fdb.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bridge/fdb.c b/bridge/fdb.c index 118fd523..06a2254b 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; }