aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rtp.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-rtp.c')
-rw-r--r--epan/dissectors/packet-rtp.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/epan/dissectors/packet-rtp.c b/epan/dissectors/packet-rtp.c
index 41557d4b2d..68843b5b88 100644
--- a/epan/dissectors/packet-rtp.c
+++ b/epan/dissectors/packet-rtp.c
@@ -97,7 +97,7 @@ typedef struct _rtp_private_conv_info {
emem_tree_t *multisegment_pdus;
} rtp_private_conv_info;
-static GHashTable *fragment_table = NULL;
+static reassembly_table rtp_reassembly_table;
static int hf_rtp_fragments = -1;
static int hf_rtp_fragment = -1;
@@ -790,7 +790,8 @@ static const value_string srtp_auth_alg_vals[] =
static void
rtp_fragment_init(void)
{
- fragment_table_init(&fragment_table);
+ reassembly_table_init(&rtp_reassembly_table,
+ &addresses_reassembly_table_functions);
}
void
@@ -1110,8 +1111,10 @@ dissect_rtp_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
* first pass, that's our best guess, and if it's not, what we
* say gets ignored anyway.
*/
- fd_head = fragment_add_seq(tvb, offset, pinfo, fid, fragment_table,
- seqno-msp->startseq, data_len, FALSE);
+ fd_head = fragment_add_seq(&rtp_reassembly_table,
+ tvb, offset, pinfo, fid, NULL,
+ seqno-msp->startseq, data_len,
+ FALSE, 0);
newtvb = process_reassembled_data(tvb,offset, pinfo, "Reassembled RTP", fd_head,
&rtp_fragment_items, NULL, tree);
@@ -1134,7 +1137,8 @@ dissect_rtp_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
g_debug("\tNo complete pdus in payload" );
#endif
/* Mark the fragments and not complete yet */
- fragment_set_partial_reassembly(pinfo, fid, fragment_table);
+ fragment_set_partial_reassembly(&rtp_reassembly_table,
+ pinfo, fid, NULL);
/* we must need another segment */
msp->endseq = MIN(msp->endseq,seqno) + 1;
@@ -1201,8 +1205,9 @@ dissect_rtp_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/*
* Add the fragment to the fragment table
*/
- fd_head = fragment_add_seq(newtvb,deseg_offset, pinfo, seqno, fragment_table, 0, frag_len,
- TRUE );
+ fd_head = fragment_add_seq(&rtp_reassembly_table,
+ newtvb, deseg_offset, pinfo, seqno, NULL, 0, frag_len,
+ TRUE, 0);
if(fd_head != NULL)
{