summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Fortin <julien@cumulusnetworks.com>2020-07-29 15:04:25 +0200
committerStephen Hemminger <stephen@networkplumber.org>2020-07-29 18:08:46 -0700
commitcb17e0cc578162a33d62afcbf9df471183a6b0c7 (patch)
tree9daab63362ced0fdddf3d9423973ae2b36695b9b
parent65c0c4d21b9610acdaced7f3ce256d265651b47d (diff)
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 <julien@cumulusnetworks.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
-rw-r--r--bridge/fdb.c5
1 files changed, 4 insertions, 1 deletions
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;
}