diff options
author | Guy Harris <guy@alum.mit.edu> | 2001-09-03 10:33:12 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2001-09-03 10:33:12 +0000 |
commit | 3388bde488ac5c54044a487ca4199f5dda0715ba (patch) | |
tree | 1c0bb040cbd4022d4c91c56160dc76dca922f005 /epan/conversation.h | |
parent | 31f2f8cabb4bce12d9cd9b60cd7644fe971b220e (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.h | 11 |
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, |