diff options
author | ulfl <ulfl@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-09-12 00:16:57 +0000 |
---|---|---|
committer | ulfl <ulfl@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-09-12 00:16:57 +0000 |
commit | 077e53d43681aa4eaf9d5e7672ae31d49abb4044 (patch) | |
tree | 38bc6ea2dcbe1c0d0545f2f43fbb7943e720fcb7 /epan/reassemble.c | |
parent | 0cdee8f80097578a9becb71d530ae766a12fd35e (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.c | 21 |
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 */ |