aboutsummaryrefslogtreecommitdiffstats
path: root/epan/conversation.h
diff options
context:
space:
mode:
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2000-10-21 05:52:28 +0000
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2000-10-21 05:52:28 +0000
commit4fd23a5c542a39e3e55781c0fa42ae9258f40533 (patch)
tree616003167e713e2f88482dfdd46c1869d68eb308 /epan/conversation.h
parente404f03da9dd268ee7f9b961255059807ebfccd5 (diff)
Support for conversations with "wildcard" destination addresses, from
Jeff Foster. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@2523 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/conversation.h')
-rw-r--r--epan/conversation.h32
1 files changed, 29 insertions, 3 deletions
diff --git a/epan/conversation.h b/epan/conversation.h
index b8c066d0a5..35b18f69d6 100644
--- a/epan/conversation.h
+++ b/epan/conversation.h
@@ -1,7 +1,7 @@
/* conversation.h
* Routines for building lists of packets that are part of a "conversation"
*
- * $Id: conversation.h,v 1.1 2000/09/27 04:54:47 gram Exp $
+ * $Id: conversation.h,v 1.2 2000/10/21 05:52:28 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -26,10 +26,26 @@
#ifndef __CONVERSATION_H__
#define __CONVERSATION_H__
+/*
+* Conversation options values
+*/
+#define NO_DST_ADDR 0x01
+#define NO_DST_PORT 0x02
+
#include "packet.h" /* for conversation dissector type */
/*
* Data structure representing a conversation.
*/
+typedef struct conversation_key {
+ struct conversation_key *next;
+ address src;
+ address dst;
+ port_type ptype;
+ guint32 port_src;
+ guint32 port_dst;
+ guint options;
+} conversation_key;
+
typedef struct conversation {
struct conversation *next; /* pointer to next conversation on hash chain */
guint32 index; /* unique ID for conversation */
@@ -39,13 +55,17 @@ typedef struct conversation {
old_dissector_t old_d;
dissector_t new_d;
} dissector; /* protocol dissector client can associate with conversation */
+
+ conversation_key *key_ptr; /* pointer to the key for this conversation */
} conversation_t;
extern void conversation_init(void);
+
conversation_t *conversation_new(address *src, address *dst, port_type ptype,
- guint32 src_port, guint32 dst_port, void *data);
+ guint32 src_port, guint32 dst_port, void *data, guint options);
+
conversation_t *find_conversation(address *src, address *dst, port_type ptype,
- guint32 src_port, guint32 dst_port);
+ guint32 src_port, guint32 dst_port, guint options);
void old_conversation_set_dissector(conversation_t *conversation,
old_dissector_t dissector);
@@ -60,4 +80,10 @@ try_conversation_dissector(address *src, address *dst, port_type ptype,
guint32 src_port, guint32 dst_port, tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree);
+/* These routines are used to set undefined values for a conversation */
+
+void conversation_set_port( conversation_t *conv, guint32 port);
+void conversation_set_address( conversation_t *conv, address *addr);
+
+
#endif /* conversation.h */