When --echo and --json is specified and native syntax is read, only the last instruction is printed. This happens because the reference to the json_echo is reassigned each time netlink_echo_callback is executed for an instruction to be echoed. Add an assignment check for json_echo to avoid reassigning it. Fixes: cb7e02f4 (src: enable json echo output when reading native syntax) Signed-off-by: Jose M. Guisado Gomez <guigom@xxxxxxxxxx> --- src/monitor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/monitor.c b/src/monitor.c index a733a9f0..2b5325ea 100644 --- a/src/monitor.c +++ b/src/monitor.c @@ -939,8 +939,8 @@ int netlink_echo_callback(const struct nlmsghdr *nlh, void *data) if (nft_output_json(&nft->output)) { if (nft->json_root) return json_events_cb(nlh, &echo_monh); - - json_alloc_echo(nft); + if (!nft->json_echo) + json_alloc_echo(nft); echo_monh.format = NFTNL_OUTPUT_JSON; } -- 2.28.0