From 5c0af364f168e1cbdf3b27ff13d1457fa12ac6db Mon Sep 17 00:00:00 2001 From: Zach Chadwick Date: Sun, 19 Feb 2023 01:55:21 +0000 Subject: [PATCH] Sharkd: Add column header labels to the "status" output --- sharkd_session.c | 11 +++++++++++ test/suite_sharkd.py | 5 +++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/sharkd_session.c b/sharkd_session.c index d1f8496d8b..ffb9b60464 100644 --- a/sharkd_session.c +++ b/sharkd_session.c @@ -1100,6 +1100,7 @@ sharkd_session_process_load(const char *buf, const jsmntok_t *tokens, int count) * (m) duration - time difference between time of first frame, and last loaded frame * (o) filename - capture filename * (o) filesize - capture filesize + * (o) columns - array of column titles */ static void sharkd_session_process_status(void) @@ -1125,6 +1126,16 @@ sharkd_session_process_status(void) sharkd_json_value_anyf("filesize", "%" PRId64, file_size); } + if (cfile.cinfo.num_cols > 0) + { + sharkd_json_array_open("columns"); + for (int i = 0; i < cfile.cinfo.num_cols; ++i) + { + sharkd_json_value_string(NULL, get_column_title(i)); + } + sharkd_json_array_close(); + } + sharkd_json_result_epilogue(); } diff --git a/test/suite_sharkd.py b/test/suite_sharkd.py index c89c30689b..4f3a8d4fcb 100644 --- a/test/suite_sharkd.py +++ b/test/suite_sharkd.py @@ -74,7 +74,7 @@ class case_sharkd(subprocesstest.SubprocessTestCase): check_sharkd_session(( {"jsonrpc":"2.0", "id":1, "method":"status"}, ), ( - {"jsonrpc":"2.0","id":1,"result":{"frames":0,"duration":0.000000000}}, + {"jsonrpc":"2.0","id":1,"result":{"frames":0,"duration":0.000000000,"columns":["No.","Time","Source","Destination","Protocol","Length","Info"]}}, )) def test_sharkd_req_status(self, check_sharkd_session, capture_file): @@ -86,7 +86,8 @@ class case_sharkd(subprocesstest.SubprocessTestCase): ), ( {"jsonrpc":"2.0","id":1,"result":{"status":"OK"}}, {"jsonrpc":"2.0","id":2,"result":{"frames": 4, "duration": 0.070345000, - "filename": "dhcp.pcap", "filesize": 1400}}, + "filename": "dhcp.pcap", "filesize": 1400, + "columns":["No.","Time","Source","Destination","Protocol","Length","Info"]}}, )) def test_sharkd_req_analyse(self, check_sharkd_session, capture_file):