summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Fisher <steve@stephen-fisher.com>2007-03-06 00:35:35 +0000
committerStephen Fisher <steve@stephen-fisher.com>2007-03-06 00:35:35 +0000
commit8d8452b419de5fcab20af4a5eeebb0dfb8898af5 (patch)
tree120b2992d0d0086b980f7d322e7134e7173f3915
parent61c8b55913eccbcad14acd187ecc8cb8378b1396 (diff)
downloadwireshark-8d8452b419de5fcab20af4a5eeebb0dfb8898af5.tar.gz
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
-rw-r--r--epan/tap.c16
-rw-r--r--epan/tap.h1
2 files changed, 17 insertions, 0 deletions
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