|
|
|
@ -815,9 +815,11 @@ static void call_timer_iterator(void *key, void *val, void *ptr) {
|
|
|
|
|
ps = it->data;
|
|
|
|
|
mutex_lock(&ps->in_lock);
|
|
|
|
|
|
|
|
|
|
sfd = ps->sfd;
|
|
|
|
|
if (!sfd || !ps->media)
|
|
|
|
|
if (!ps->media)
|
|
|
|
|
goto next;
|
|
|
|
|
sfd = ps->sfd;
|
|
|
|
|
if (!sfd)
|
|
|
|
|
goto no_sfd;
|
|
|
|
|
|
|
|
|
|
if (MEDIA_ISSET(ps->media, DTLS) && sfd->dtls.init && !sfd->dtls.connected)
|
|
|
|
|
dtls(ps, NULL, NULL);
|
|
|
|
@ -827,11 +829,12 @@ static void call_timer_iterator(void *key, void *val, void *ptr) {
|
|
|
|
|
hlp->ports[sfd->fd.localport] = sfd;
|
|
|
|
|
obj_hold(sfd);
|
|
|
|
|
|
|
|
|
|
no_sfd:
|
|
|
|
|
if (good)
|
|
|
|
|
goto next;
|
|
|
|
|
|
|
|
|
|
check = cm->conf.timeout;
|
|
|
|
|
if (!MEDIA_ISSET(ps->media, RECV) || !ps->sfd)
|
|
|
|
|
if (!MEDIA_ISSET(ps->media, RECV) || !sfd)
|
|
|
|
|
check = cm->conf.silent_timeout;
|
|
|
|
|
|
|
|
|
|
if (poller_now - ps->last_packet < check)
|
|
|
|
|