aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-sdp.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2013-02-08 17:52:12 +0000
committerMichael Mann <mmann78@netscape.net>2013-02-08 17:52:12 +0000
commitc7525936983ae67912df1baffbddf60a2e69242b (patch)
treebf1ea5ce65d98f023f2b0861e25a5e235063a533 /epan/dissectors/packet-sdp.c
parent8c8533e0dd4223ce423896dfb3c089c037d83686 (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.c12
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)
{