aboutsummaryrefslogtreecommitdiffstats
path: root/epan/conversation.h
diff options
context:
space:
mode:
authorGilbert Ramirez <gram@alumni.rice.edu>2000-09-27 04:55:05 +0000
committerGilbert Ramirez <gram@alumni.rice.edu>2000-09-27 04:55:05 +0000
commit83ec54675c19f25cfbb2e8a8863c6ee2191d8b0c (patch)
tree35d39e43d20aca160b96d8a85ddc2b80e4646f67 /epan/conversation.h
parentf881e13932e0ba390c26cce15d1334b2154a8062 (diff)
First step in moving core Ethereal routines to libepan.
svn path=/trunk/; revision=2458
Diffstat (limited to 'epan/conversation.h')
-rw-r--r--epan/conversation.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/epan/conversation.h b/epan/conversation.h
new file mode 100644
index 0000000000..b8c066d0a5
--- /dev/null
+++ b/epan/conversation.h
@@ -0,0 +1,63 @@
+/* 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 $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@zing.org>
+ * Copyright 1998 Gerald Combs
+ *
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __CONVERSATION_H__
+#define __CONVERSATION_H__
+
+#include "packet.h" /* for conversation dissector type */
+/*
+ * Data structure representing a conversation.
+ */
+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 */
+ gboolean is_old_dissector; /* XXX - nuke when everybody tvbuffified */
+ union {
+ old_dissector_t old_d;
+ dissector_t new_d;
+ } dissector; /* protocol dissector client can associate with 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);
+conversation_t *find_conversation(address *src, address *dst, port_type ptype,
+ guint32 src_port, guint32 dst_port);
+
+void old_conversation_set_dissector(conversation_t *conversation,
+ old_dissector_t dissector);
+void conversation_set_dissector(conversation_t *conversation,
+ dissector_t dissector);
+gboolean
+old_try_conversation_dissector(address *src, address *dst, port_type ptype,
+ guint32 src_port, guint32 dst_port, const u_char *pd, int offset,
+ frame_data *fd, proto_tree *tree);
+gboolean
+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);
+
+#endif /* conversation.h */