diff options
Diffstat (limited to 'res/res_rtp_asterisk.c')
-rw-r--r-- | res/res_rtp_asterisk.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index a67bc8135..88201837d 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -1577,7 +1577,7 @@ static int ast_rtp_dtls_active(struct ast_rtp_instance *instance) static void ast_rtp_dtls_stop(struct ast_rtp_instance *instance) { struct ast_rtp *rtp = ast_rtp_instance_get_data(instance); - int rtcp_dtls_unique = (rtp->dtls.ssl != rtp->rtcp->dtls.ssl); + SSL *ssl = rtp->dtls.ssl; dtls_srtp_stop_timeout_timer(instance, rtp, 0); @@ -1595,7 +1595,7 @@ static void ast_rtp_dtls_stop(struct ast_rtp_instance *instance) if (rtp->rtcp) { dtls_srtp_stop_timeout_timer(instance, rtp, 1); - if (rtp->rtcp->dtls.ssl && rtcp_dtls_unique) { + if (rtp->rtcp->dtls.ssl && (rtp->rtcp->dtls.ssl != ssl)) { SSL_free(rtp->rtcp->dtls.ssl); rtp->rtcp->dtls.ssl = NULL; ast_mutex_destroy(&rtp->rtcp->dtls.lock); @@ -4426,7 +4426,7 @@ static struct ast_frame *ast_rtcp_read(struct ast_rtp_instance *instance) return &ast_null_frame; } - if (!*(read_area)) { + if (!*read_area) { struct sockaddr_in addr_tmp; struct ast_sockaddr addr_v4; @@ -4448,7 +4448,7 @@ static struct ast_frame *ast_rtcp_read(struct ast_rtp_instance *instance) return &ast_null_frame; } - return ast_rtcp_interpret(instance, read_area, read_area_size, &addr); + return ast_rtcp_interpret(instance, read_area, res, &addr); } static int bridge_p2p_rtp_write(struct ast_rtp_instance *instance, unsigned int *rtpheader, int len, int hdrlen) @@ -4633,7 +4633,7 @@ static struct ast_frame *ast_rtp_read(struct ast_rtp_instance *instance, int rtc /* This could be a multiplexed RTCP packet. If so, be sure to interpret it correctly */ if (rtcp_mux(rtp, read_area)) { - return ast_rtcp_interpret(instance, read_area, read_area_size, &addr); + return ast_rtcp_interpret(instance, read_area, res, &addr); } /* Make sure the data that was read in is actually enough to make up an RTP packet */ @@ -5040,7 +5040,9 @@ static void ast_rtp_prop_set(struct ast_rtp_instance *instance, enum ast_rtp_pro return; } rtp->rtcp->s = -1; +#ifdef HAVE_OPENSSL_SRTP rtp->rtcp->dtls.timeout_timer = -1; +#endif rtp->rtcp->schedid = -1; } |