diff options
author | Guy Harris <guy@alum.mit.edu> | 2000-10-21 05:52:28 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2000-10-21 05:52:28 +0000 |
commit | 563f86ee5eab280006171dbd7fdb411715594355 (patch) | |
tree | 616003167e713e2f88482dfdd46c1869d68eb308 /epan/conversation.h | |
parent | 183e9cbf25933dcd9abc8db485f5308459f192b2 (diff) | |
download | wireshark-563f86ee5eab280006171dbd7fdb411715594355.tar.gz wireshark-563f86ee5eab280006171dbd7fdb411715594355.tar.bz2 wireshark-563f86ee5eab280006171dbd7fdb411715594355.zip |
Support for conversations with "wildcard" destination addresses, from
Jeff Foster.
svn path=/trunk/; revision=2523
Diffstat (limited to 'epan/conversation.h')
-rw-r--r-- | epan/conversation.h | 32 |
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 */ |