|
|
|
@ -680,13 +680,22 @@ int dtls(struct packet_stream *ps, const str *s, const endpoint_t *fsin) { |
|
|
|
} |
|
|
|
else if (ret == 1) { |
|
|
|
/* connected! */ |
|
|
|
mutex_lock(&ps->out_lock); // nested lock! |
|
|
|
if (dtls_setup_crypto(ps, d)) |
|
|
|
/* XXX ?? */ ; |
|
|
|
mutex_unlock(&ps->out_lock); |
|
|
|
|
|
|
|
if (PS_ISSET(ps, RTP) && PS_ISSET(ps, RTCP) && ps->rtcp_sibling |
|
|
|
&& MEDIA_ISSET(ps->media, RTCP_MUX)) |
|
|
|
&& MEDIA_ISSET(ps->media, RTCP_MUX) |
|
|
|
&& ps->rtcp_sibling != ps) |
|
|
|
{ |
|
|
|
// nested locks! |
|
|
|
mutex_lock(&ps->rtcp_sibling->in_lock); |
|
|
|
mutex_lock(&ps->rtcp_sibling->out_lock); |
|
|
|
if (dtls_setup_crypto(ps->rtcp_sibling, d)) |
|
|
|
/* XXX ?? */ ; |
|
|
|
mutex_unlock(&ps->rtcp_sibling->out_lock); |
|
|
|
mutex_unlock(&ps->rtcp_sibling->in_lock); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|