aboutsummaryrefslogtreecommitdiffstats
path: root/epan/conversation.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2017-11-09 00:25:43 -0500
committerAnders Broman <a.broman58@gmail.com>2017-11-09 07:50:09 +0000
commitafb252355bebee80673ea904c6b510aeaf10feb5 (patch)
tree83ced33c09d2a296fc4a39177354d04e78d19a76 /epan/conversation.c
parent78665f5211fa9eeb3031dae2de8e551bcb2369ea (diff)
ISDN: Convert circuit API to conversation API
Change-Id: I8752123a740c47f9328e0144624d4fbf4e200165 Reviewed-on: https://code.wireshark.org/review/24314 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/conversation.c')
-rw-r--r--epan/conversation.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/epan/conversation.c b/epan/conversation.c
index 38903b1a72..a7442ec6e4 100644
--- a/epan/conversation.c
+++ b/epan/conversation.c
@@ -1277,6 +1277,32 @@ try_conversation_dissector(const address *addr_a, const address *addr_b, const e
return FALSE;
}
+gboolean
+try_conversation_dissector_simple(const endpoint_type etype, const guint32 port_a, tvbuff_t *tvb,
+ packet_info *pinfo, proto_tree *tree, void* data)
+{
+ conversation_t *conversation;
+
+ conversation = find_conversation_simple(pinfo->num, etype, port_a, 0);
+
+ if (conversation != NULL) {
+ int ret;
+ dissector_handle_t handle = (dissector_handle_t)wmem_tree_lookup32_le(conversation->dissector_tree, pinfo->num);
+ if (handle == NULL)
+ return FALSE;
+ ret=call_dissector_only(handle, tvb, pinfo, tree, data);
+ if(!ret) {
+ /* this packet was rejected by the dissector
+ * so return FALSE in case our caller wants
+ * to do some cleaning up.
+ */
+ return FALSE;
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+
/** A helper function that calls find_conversation() using data from pinfo
* The frame number and addresses are taken from pinfo.
*/