diff options
author | Anders Broman <anders.broman@ericsson.com> | 2005-02-02 20:07:03 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2005-02-02 20:07:03 +0000 |
commit | 851ecd2ac41b2aba59fc20a3ef3b6e49ce117798 (patch) | |
tree | b7a41a2d4d3ffe7bd349658b292b59f46f86939b /epan/dissectors/packet-rtp.c | |
parent | 93ea4470f0850361f4f5105313db6e08250c0508 (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.c | 8 |
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) |