diff options
author | Michael Mann <mmann78@netscape.net> | 2013-02-08 17:52:12 +0000 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2013-02-08 17:52:12 +0000 |
commit | c7525936983ae67912df1baffbddf60a2e69242b (patch) | |
tree | bf1ea5ce65d98f023f2b0861e25a5e235063a533 /epan/dissectors/packet-sdp.c | |
parent | 8c8533e0dd4223ce423896dfb3c089c037d83686 (diff) |
Handle SIP "resends" within SDP. This is to handle "duplicate" OFFERs so they don't end up being handled by setup_sdp_transport() because the current frame couldn't match a request (due to duplication).
setup_sdp_transport_resend() should be unnecessary once all higher layers use setup_sdp_transport() and the "registration" code within dissect_sdp() is removed.
svn path=/trunk/; revision=47572
Diffstat (limited to 'epan/dissectors/packet-sdp.c')
-rw-r--r-- | epan/dissectors/packet-sdp.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/epan/dissectors/packet-sdp.c b/epan/dissectors/packet-sdp.c index d563f199e4..7af9ab2514 100644 --- a/epan/dissectors/packet-sdp.c +++ b/epan/dissectors/packet-sdp.c @@ -1922,6 +1922,18 @@ setup_sdp_transport(tvbuff_t *tvb, packet_info *pinfo, enum sdp_exchange_type ex } } +void setup_sdp_transport_resend(int current_frame, int request_frame) +{ + transport_info_t* transport_info = NULL; + + if (request_frame != 0) { + transport_info = (transport_info_t*)se_tree_lookup32( sdp_transport_reqs, request_frame ); + if (transport_info != NULL) { + se_tree_insert32(sdp_transport_reqs, current_frame, (void *)transport_info); + } + } +} + static void dissect_sdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { |