aboutsummaryrefslogtreecommitdiffstats
path: root/reassemble.h
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2003-04-20 11:36:16 +0000
committerGuy Harris <guy@alum.mit.edu>2003-04-20 11:36:16 +0000
commitd359286841fb9221400bcc64bf8bbcc88e3127fd (patch)
tree7ed0620519b78e1ad0b8f6a83d488e1dd856bb3f /reassemble.h
parent4af58d8967aecdaea73d618ea7d6310183e6ffd2 (diff)
Add a pointer to an hf_ value for a "reassembled_in" field (which can be
null) to the "fragment_items" structure, and don't pass that value into "process_reassembled_data()", just have it use the value in the "fragment_items" structure passed to it. Make "process_reassembled_data()" capable of handling reassembly done by "fragment_add_seq_check()", and use it in the ATP and 802.11 dissectors; give them "reassembled_in" fields. Make "process_reassembled_data()" handle only the case of a completed reassembly (fd_head != NULL) so that we can use it in those dissectors without gunking the code up too much. svn path=/trunk/; revision=7513
Diffstat (limited to 'reassemble.h')
-rw-r--r--reassemble.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/reassemble.h b/reassemble.h
index 269c4087d0..1e3781ceb5 100644
--- a/reassemble.h
+++ b/reassemble.h
@@ -1,7 +1,7 @@
/* reassemble.h
* Declarations of outines for {fragment,segment} reassembly
*
- * $Id: reassemble.h,v 1.17 2003/04/20 08:06:01 guy Exp $
+ * $Id: reassemble.h,v 1.18 2003/04/20 11:36:16 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -194,14 +194,16 @@ fragment_delete(packet_info *pinfo, guint32 id, GHashTable *fragment_table);
/*
* This function adds fragment_data structure to a reassembled-packet
- * hash table, using the frame data structure as the key.
+ * hash table, using the frame numbers of each of the frames from
+ * which it was reassembled as keys, and sets the "reassembled_in"
+ * frame number.
*/
extern void
fragment_reassembled(fragment_data *fd_head, packet_info *pinfo,
GHashTable *reassembled_table);
-/* hf_fragment and hf_fragment_error should be FT_FRAMENUM,
- the others should be FT_BOOLEAN
+/* hf_fragment, hf_fragment_error, and hf_reassembled_in should be
+ FT_FRAMENUM, the others should be FT_BOOLEAN
*/
typedef struct _fragment_items {
gint *ett_fragment;
@@ -214,14 +216,15 @@ typedef struct _fragment_items {
int *hf_fragment_multiple_tails;
int *hf_fragment_too_long_fragment;
int *hf_fragment_error;
+ int *hf_reassembled_in;
char *tag;
} fragment_items;
extern tvbuff_t *
process_reassembled_data(tvbuff_t *tvb, packet_info *pinfo, char *name,
- fragment_data *fd_head, const fragment_items *frag_items,
- int hf_reassembled_in, gboolean *update_col_infop, proto_tree *tree);
+ fragment_data *fd_head, const fragment_items *fit,
+ gboolean *update_col_infop, proto_tree *tree);
extern gboolean
show_fragment_tree(fragment_data *ipfd_head, const fragment_items *fit,