aboutsummaryrefslogtreecommitdiffstats
path: root/epan/reassemble.c
diff options
context:
space:
mode:
authorulfl <ulfl@f5534014-38df-0310-8fa8-9805f1628bb7>2005-09-12 00:16:57 +0000
committerulfl <ulfl@f5534014-38df-0310-8fa8-9805f1628bb7>2005-09-12 00:16:57 +0000
commit077e53d43681aa4eaf9d5e7672ae31d49abb4044 (patch)
tree38bc6ea2dcbe1c0d0545f2f43fbb7943e720fcb7 /epan/reassemble.c
parent0cdee8f80097578a9becb71d530ae766a12fd35e (diff)
fix reassembling problem I've introduced yesterday, by using fragment_add_seq_next() function instead of fragment_add()
in addition, I had to implement fragment_get_reassembled() in addition to fragment_get(), which works with reassembled_table git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@15762 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/reassemble.c')
-rw-r--r--epan/reassemble.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/epan/reassemble.c b/epan/reassemble.c
index 688e07d405..2c43fd786f 100644
--- a/epan/reassemble.c
+++ b/epan/reassemble.c
@@ -386,6 +386,20 @@ fragment_get(packet_info *pinfo, guint32 id, GHashTable *fragment_table)
return fd_head;
}
+fragment_data *
+fragment_get_reassembled(packet_info *pinfo, guint32 id, GHashTable *reassembled_table)
+{
+ fragment_data *fd_head;
+ reassembled_key key;
+
+ /* create key to search hash with */
+ key.frame = id;
+ key.id = id;
+ fd_head = g_hash_table_lookup(reassembled_table, &key);
+
+ return fd_head;
+}
+
/* This function can be used to explicitely set the total length (if known)
* for reassembly of a PDU.
* This is useful for reassembly of PDUs where one may have the total length specified
@@ -711,13 +725,6 @@ fragment_add_work(fragment_data *fd_head, tvbuff_t *tvb, int offset,
fd_head->flags |= FD_TOOLONGFRAGMENT;
}
- if(more_frags) {
- /* dissector told us, that this isn't the last fragment,
- * trust this information and don't try to defragment for now.
- */
- return FALSE;
- }
-
/* we have received an entire packet, defragment it and
* free all fragments
*/