diff options
author | Michał Łabędzki <michal.labedzki@wireshark.org> | 2018-06-16 18:22:00 +0200 |
---|---|---|
committer | Michal Labedzki <michal.labedzki@wireshark.org> | 2018-08-04 13:26:05 +0000 |
commit | a0814af296aa597867125a75094c7d7cfb1b045d (patch) | |
tree | fcda8e307eab0f1596c0cca1238257523c7d17c3 /sharkd.c | |
parent | 49aef5b06110ed92c9d16d175d53dac9499b3cb0 (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.c | 19 |
1 files changed, 14 insertions, 5 deletions
@@ -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); |