From 8d8452b419de5fcab20af4a5eeebb0dfb8898af5 Mon Sep 17 00:00:00 2001 From: Stephen Fisher Date: Tue, 6 Mar 2007 00:35:35 +0000 Subject: Introduce a new function called have_tap_listener(int tap_id) to tell if a specific tap id is currently listening for data. This complements the function have_tap_listeners(), which checks to see if any tap is currently listening. svn path=/trunk/; revision=20979 --- epan/tap.c | 16 ++++++++++++++++ epan/tap.h | 1 + 2 files changed, 17 insertions(+) diff --git a/epan/tap.c b/epan/tap.c index ada6275a2d..c57196b33b 100644 --- a/epan/tap.c +++ b/epan/tap.c @@ -460,3 +460,19 @@ have_tap_listeners(void) { return tap_listener_queue != NULL; } + +/* Returns TRUE there is an active tap listener for the specified tap id. */ +gboolean +have_tap_listener(int tap_id) +{ + volatile tap_listener_t *tap_queue = tap_listener_queue; + + while(tap_queue) { + if(tap_queue->tap_id == tap_id) + return TRUE; + + tap_queue = tap_queue->next; + } + + return FALSE; +} diff --git a/epan/tap.h b/epan/tap.h index d24c3d72f1..9e50c65eef 100644 --- a/epan/tap.h +++ b/epan/tap.h @@ -50,6 +50,7 @@ extern GString *register_tap_listener(const char *tapname, void *tapdata, tap_draw_cb tap_draw); extern void remove_tap_listener(void *tapdata); extern gboolean have_tap_listeners(void); +extern gboolean have_tap_listener(int tap_id); extern const void *fetch_tapped_data(int tap_id, int idx); #endif -- cgit v1.2.3