aboutsummaryrefslogtreecommitdiffstats
path: root/epan/tap.c
diff options
context:
space:
mode:
authorJeff Morriss <jeff.morriss@ulticom.com>2011-05-12 03:18:34 +0000
committerJeff Morriss <jeff.morriss@ulticom.com>2011-05-12 03:18:34 +0000
commit009156289f5af6d6abe25c0b24f0b439bc996f47 (patch)
treec103eac46fa0a63a2535c91386947715c15589e6 /epan/tap.c
parent995d748f0561867b02682d2468fb7ae935866de3 (diff)
Fix the test.sh failures based on Guy's suggestion in https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5445#c15 :
Add a new tap flag to indicate that a tap listener is just a "dissector helper", that is, a tap which is used by a dissector to help it do its dissection but does not, itself, require dissection. Use this new flag in the dissectors which register taps. Remove the (now-unused) have_tap_listeners() function. svn path=/trunk/; revision=37069
Diffstat (limited to 'epan/tap.c')
-rw-r--r--epan/tap.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/epan/tap.c b/epan/tap.c
index 1e356bcda5..7518e5050c 100644
--- a/epan/tap.c
+++ b/epan/tap.c
@@ -508,12 +508,23 @@ remove_tap_listener(void *tapdata)
}
/*
- * Return TRUE if we have tap listeners, FALSE otherwise.
+ * Return TRUE if we have one or more tap listeners that require dissection,
+ * FALSE otherwise.
*/
gboolean
-have_tap_listeners(void)
+tap_listeners_require_dissection(void)
{
- return tap_listener_queue != NULL;
+ volatile tap_listener_t *tap_queue = tap_listener_queue;
+
+ while(tap_queue) {
+ if(!(tap_queue->flags & TL_IS_DISSECTOR_HELPER))
+ return TRUE;
+
+ tap_queue = tap_queue->next;
+ }
+
+ return FALSE;
+
}
/* Returns TRUE there is an active tap listener for the specified tap id. */