aboutsummaryrefslogtreecommitdiffstats
path: root/epan/conversation.h
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2001-09-03 10:33:12 +0000
committerGuy Harris <guy@alum.mit.edu>2001-09-03 10:33:12 +0000
commit3388bde488ac5c54044a487ca4199f5dda0715ba (patch)
tree1c0bb040cbd4022d4c91c56160dc76dca922f005 /epan/conversation.h
parent31f2f8cabb4bce12d9cd9b60cd7644fe971b220e (diff)
Instead of having a single datum attached to a conversation, have a list
of protocol-id-plus-datum pairs, so that multiple protocols can attach information to the same conversation. Dissectors that attach information to a conversation should not assume that if they find a conversation it has one of its data attached to it; the conversation might've been created by another dissector. svn path=/trunk/; revision=3901
Diffstat (limited to 'epan/conversation.h')
-rw-r--r--epan/conversation.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/epan/conversation.h b/epan/conversation.h
index 7ea269445b..4e27862762 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.5 2001/06/10 09:50:20 guy Exp $
+ * $Id: conversation.h,v 1.6 2001/09/03 10:33:12 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -56,7 +56,7 @@ typedef struct conversation_key {
typedef struct conversation {
struct conversation *next; /* pointer to next conversation on hash chain */
guint32 index; /* unique ID for conversation */
- void *data; /* data our client can associate with a conversation */
+ GSList *data_list; /* list of data associated with conversation */
gboolean is_old_dissector; /* XXX - nuke when everybody tvbuffified */
union {
old_dissector_t old_d;
@@ -69,11 +69,16 @@ typedef struct conversation {
extern void conversation_init(void);
conversation_t *conversation_new(address *addr1, address *addr2,
- port_type ptype, guint32 port1, guint32 port2, void *data, guint options);
+ port_type ptype, guint32 port1, guint32 port2, guint options);
conversation_t *find_conversation(address *addr_a, address *addr_b,
port_type ptype, guint32 port_a, guint32 port_b, guint options);
+void conversation_add_proto_data(conversation_t *conv, int proto,
+ void *proto_data);
+void *conversation_get_proto_data(conversation_t *conv, int proto);
+void conversation_delete_proto_data(conversation_t *conv, int proto);
+
void old_conversation_set_dissector(conversation_t *conversation,
old_dissector_t dissector);
void conversation_set_dissector(conversation_t *conversation,