tools: bpftool: provide JSON output for all possible commands
As all commands can now return JSON output (possibly just a "null"
value), output of `bpftool --json batch file FILE` should also be fully
JSON compliant.
Signed-off-by: Quentin Monnet <quentin.monnet@netronome.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/tools/bpf/bpftool/map.c b/tools/bpf/bpftool/map.c
index 86c128c..a611f31 100644
--- a/tools/bpf/bpftool/map.c
+++ b/tools/bpf/bpftool/map.c
@@ -651,6 +651,8 @@ static int do_update(int argc, char **argv)
free(value);
close(fd);
+ if (!err && json_output)
+ jsonw_null(json_wtr);
return err;
}
@@ -812,16 +814,28 @@ static int do_delete(int argc, char **argv)
free(key);
close(fd);
+ if (!err && json_output)
+ jsonw_null(json_wtr);
return err;
}
static int do_pin(int argc, char **argv)
{
- return do_pin_any(argc, argv, bpf_map_get_fd_by_id);
+ int err;
+
+ err = do_pin_any(argc, argv, bpf_map_get_fd_by_id);
+ if (!err && json_output)
+ jsonw_null(json_wtr);
+ return err;
}
static int do_help(int argc, char **argv)
{
+ if (json_output) {
+ jsonw_null(json_wtr);
+ return 0;
+ }
+
fprintf(stderr,
"Usage: %s %s show [MAP]\n"
" %s %s dump MAP\n"