aboutsummaryrefslogtreecommitdiffstats
path: root/tshark.c
diff options
context:
space:
mode:
authorDario Lombardo <lomato@gmail.com>2018-12-10 13:44:03 +0100
committerPeter Wu <peter@lekensteyn.nl>2019-01-03 14:33:48 +0000
commit30c90fa745af6b63da6aa6b59e4fbb24d2f195bd (patch)
tree02bdfdbc37fe7f9178167e1cef6bd71bcc66af7c /tshark.c
parent19d787d0514696eff4b723d23c7615155c23b245 (diff)
epan: use json_dumper for json outputs.
They include -Tjson, -Tjsonraw, -Tek. Change-Id: Ib3d700482ce5c29727c3f778cc3c46a1bf7756c4 Reviewed-on: https://code.wireshark.org/review/31000 Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Diffstat (limited to 'tshark.c')
-rw-r--r--tshark.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/tshark.c b/tshark.c
index d6d935323f..2367f1aead 100644
--- a/tshark.c
+++ b/tshark.c
@@ -114,6 +114,7 @@
#include <wsutil/str_util.h>
#include <wsutil/utf8_entities.h>
+#include <wsutil/json_dumper.h>
#include "extcap.h"
@@ -193,6 +194,8 @@ static pf_flags protocolfilter_flags = PF_NONE;
static gboolean no_duplicate_keys = FALSE;
static proto_node_children_grouper_func node_children_grouper = proto_node_group_children_by_unique;
+static json_dumper jdumper;
+
/* The line separator used between packets, changeable via the -S option */
static const char *separator = "";
@@ -3559,11 +3562,11 @@ write_preamble(capture_file *cf)
case WRITE_JSON:
case WRITE_JSON_RAW:
- write_json_preamble(stdout);
+ jdumper = write_json_preamble(stdout);
return !ferror(stdout);
case WRITE_EK:
- return !ferror(stdout);
+ return TRUE;
default:
g_assert_not_reached();
@@ -3916,7 +3919,7 @@ print_packet(capture_file *cf, epan_dissect_t *edt)
if (print_details) {
write_json_proto_tree(output_fields, print_dissections_expanded,
print_hex, protocolfilter, protocolfilter_flags,
- edt, &cf->cinfo, node_children_grouper, stdout);
+ edt, &cf->cinfo, node_children_grouper, &jdumper);
return !ferror(stdout);
}
break;
@@ -3927,7 +3930,7 @@ print_packet(capture_file *cf, epan_dissect_t *edt)
if (print_details) {
write_json_proto_tree(output_fields, print_dissections_none, TRUE,
protocolfilter, protocolfilter_flags,
- edt, &cf->cinfo, node_children_grouper, stdout);
+ edt, &cf->cinfo, node_children_grouper, &jdumper);
return !ferror(stdout);
}
break;
@@ -3972,11 +3975,11 @@ write_finale(void)
case WRITE_JSON:
case WRITE_JSON_RAW:
- write_json_finale(stdout);
+ write_json_finale(&jdumper);
return !ferror(stdout);
case WRITE_EK:
- return !ferror(stdout);
+ return TRUE;
default:
g_assert_not_reached();