diff options
author | Guy Harris <guy@alum.mit.edu> | 2018-07-20 17:07:19 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2018-07-21 00:51:13 +0000 |
commit | 9b731e2b320ca936499bf7840a7b2ac5c2b64e05 (patch) | |
tree | b8ab320176662c385a6d544e505eee173e18ffc1 /epan/tap.c | |
parent | 66935d8baadfe7dd62b4e8d4412a47f311ead7f5 (diff) |
Add a tap "finish" callback, called when a listener is removed.
Change-Id: Ic6c23dbd39d1adf8f730f1c866e409f731947475
Reviewed-on: https://code.wireshark.org/review/28786
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'epan/tap.c')
-rw-r--r-- | epan/tap.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/epan/tap.c b/epan/tap.c index 5442a159ad..f71652da38 100644 --- a/epan/tap.c +++ b/epan/tap.c @@ -89,6 +89,7 @@ typedef struct _tap_listener_t { tap_reset_cb reset; tap_packet_cb packet; tap_draw_cb draw; + tap_finish_cb finish; } tap_listener_t; static volatile tap_listener_t *tap_listener_queue=NULL; @@ -465,7 +466,8 @@ DIAG_ON(cast-qual) */ GString * register_tap_listener(const char *tapname, void *tapdata, const char *fstring, - guint flags, tap_reset_cb reset, tap_packet_cb packet, tap_draw_cb draw) + guint flags, tap_reset_cb reset, tap_packet_cb packet, + tap_draw_cb draw, tap_finish_cb finish) { volatile tap_listener_t *tl; int tap_id; @@ -502,6 +504,7 @@ register_tap_listener(const char *tapname, void *tapdata, const char *fstring, tl->reset=reset; tl->packet=packet; tl->draw=draw; + tl->finish=finish; tl->next=tap_listener_queue; tap_listener_queue=tl; @@ -613,6 +616,8 @@ remove_tap_listener(void *tapdata) } } + if(tl->finish) + tl->finish(tapdata); free_tap_listener(tl); } |