aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rtp.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2005-02-02 20:07:03 +0000
committerAnders Broman <anders.broman@ericsson.com>2005-02-02 20:07:03 +0000
commit851ecd2ac41b2aba59fc20a3ef3b6e49ce117798 (patch)
treeb7a41a2d4d3ffe7bd349658b292b59f46f86939b /epan/dissectors/packet-rtp.c
parent93ea4470f0850361f4f5105313db6e08250c0508 (diff)
From Jon Ringle:
1) Added a setup_frame parameter to conversation_t 2) Used the conversation_t next to maintain a list of conversations with the same src/dest tuple but different setup_frame number. 3) Changed the signature of find_conversation() and conversation_new() to pass in the frame number. 4) Adjusted packet-sdp to select RTP conversation if both m=audio and m=image are present, and T.38 conversation if only m=image is present. I expect that RTP/T.38 dissecting to be better, but I don't have a way to generate T.38 packets. svn path=/trunk/; revision=13243
Diffstat (limited to 'epan/dissectors/packet-rtp.c')
-rw-r--r--epan/dissectors/packet-rtp.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/epan/dissectors/packet-rtp.c b/epan/dissectors/packet-rtp.c
index 3d12e5ca35..c53b09bc36 100644
--- a/epan/dissectors/packet-rtp.c
+++ b/epan/dissectors/packet-rtp.c
@@ -248,14 +248,14 @@ void rtp_add_address(packet_info *pinfo,
* Check if the ip address and port combination is not
* already registered as a conversation.
*/
- p_conv = find_conversation( addr, &null_addr, PT_UDP, port, other_port,
+ p_conv = find_conversation( setup_frame_number, addr, &null_addr, PT_UDP, port, other_port,
NO_ADDR_B | (!other_port ? NO_PORT_B : 0));
/*
* If not, create a new conversation.
*/
- if ( ! p_conv ) {
- p_conv = conversation_new( addr, &null_addr, PT_UDP,
+ if ( !p_conv || p_conv->setup_frame != setup_frame_number) {
+ p_conv = conversation_new( setup_frame_number, addr, &null_addr, PT_UDP,
(guint32)port, (guint32)other_port,
NO_ADDR2 | (!other_port ? NO_PORT2 : 0));
}
@@ -665,7 +665,7 @@ void show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (!p_conv_data)
{
/* First time, get info from conversation */
- p_conv = find_conversation(&pinfo->net_dst, &pinfo->net_src,
+ p_conv = find_conversation(pinfo->fd->num, &pinfo->net_dst, &pinfo->net_src,
pinfo->ptype,
pinfo->destport, pinfo->srcport, NO_ADDR_B);
if (p_conv)