aboutsummaryrefslogtreecommitdiffstats
path: root/sharkd.c
diff options
context:
space:
mode:
authorMichał Łabędzki <michal.labedzki@wireshark.org>2018-06-16 18:22:00 +0200
committerMichal Labedzki <michal.labedzki@wireshark.org>2018-08-04 13:26:05 +0000
commita0814af296aa597867125a75094c7d7cfb1b045d (patch)
treefcda8e307eab0f1596c0cca1238257523c7d17c3 /sharkd.c
parent49aef5b06110ed92c9d16d175d53dac9499b3cb0 (diff)
sharkd: Return frame's color-filter colors
Return color-filter bg/fg colors for single frame if requested. Also return marked/ignored fields for frame. Change-Id: I4480b733f54991c72bea1664fa6e7337812e6231 Reviewed-on: https://code.wireshark.org/review/28304 Petri-Dish: Michal Labedzki <michal.labedzki@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Michal Labedzki <michal.labedzki@wireshark.org>
Diffstat (limited to 'sharkd.c')
-rw-r--r--sharkd.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/sharkd.c b/sharkd.c
index 0b61074c8a..fcc6160f1d 100644
--- a/sharkd.c
+++ b/sharkd.c
@@ -526,10 +526,10 @@ sharkd_get_frame(guint32 framenum)
}
int
-sharkd_dissect_request(guint32 framenum, guint32 frame_ref_num, guint32 prev_dis_num, sharkd_dissect_func_t cb, int dissect_bytes, int dissect_columns, int dissect_tree, void *data)
+sharkd_dissect_request(guint32 framenum, guint32 frame_ref_num, guint32 prev_dis_num, sharkd_dissect_func_t cb, guint32 dissect_flags, void *data)
{
frame_data *fdata;
- column_info *cinfo = (dissect_columns) ? &cfile.cinfo : NULL;
+ column_info *cinfo = (dissect_flags & SHARKD_DISSECT_FLAG_COLUMNS) ? &cfile.cinfo : NULL;
epan_dissect_t edt;
gboolean create_proto_tree;
wtap_rec rec; /* Record metadata */
@@ -550,8 +550,15 @@ sharkd_dissect_request(guint32 framenum, guint32 frame_ref_num, guint32 prev_dis
return -1; /* error reading the record */
}
- create_proto_tree = (dissect_tree) || (cinfo && have_custom_cols(cinfo));
- epan_dissect_init(&edt, cfile.epan, create_proto_tree, dissect_tree);
+ create_proto_tree = ((dissect_flags & SHARKD_DISSECT_FLAG_PROTO_TREE) ||
+ ((dissect_flags & SHARKD_DISSECT_FLAG_COLOR) && color_filters_used()) ||
+ (cinfo && have_custom_cols(cinfo)));
+ epan_dissect_init(&edt, cfile.epan, create_proto_tree, (dissect_flags & SHARKD_DISSECT_FLAG_PROTO_TREE));
+
+ if (dissect_flags & SHARKD_DISSECT_FLAG_COLOR) {
+ color_filters_prime_edt(&edt);
+ fdata->flags.need_colorize = 1;
+ }
if (cinfo)
col_custom_prime_edt(&edt, cinfo);
@@ -572,7 +579,9 @@ sharkd_dissect_request(guint32 framenum, guint32 frame_ref_num, guint32 prev_dis
epan_dissect_fill_in_columns(&edt, FALSE, TRUE/* fill_fd_columns */);
}
- cb(&edt, dissect_tree ? edt.tree : NULL, cinfo, dissect_bytes ? edt.pi.data_src : NULL, data);
+ cb(&edt, (dissect_flags & SHARKD_DISSECT_FLAG_PROTO_TREE) ? edt.tree : NULL,
+ cinfo, (dissect_flags & SHARKD_DISSECT_FLAG_BYTES) ? edt.pi.data_src : NULL,
+ data);
epan_dissect_cleanup(&edt);
wtap_rec_cleanup(&rec);