diff options
Diffstat (limited to 'pjnath/src/pjnath/turn_sock.c')
-rw-r--r-- | pjnath/src/pjnath/turn_sock.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/pjnath/src/pjnath/turn_sock.c b/pjnath/src/pjnath/turn_sock.c index f1f5bb6d..ef28803a 100644 --- a/pjnath/src/pjnath/turn_sock.c +++ b/pjnath/src/pjnath/turn_sock.c @@ -428,6 +428,14 @@ PJ_DEF(pj_status_t) pj_turn_sock_alloc(pj_turn_sock *turn_sock, sess_fail(turn_sock, "Error setting TURN server", status); pj_grp_lock_release(turn_sock->grp_lock); return status; + } else if (!turn_sock->sess) { + /* TURN session may have been destroyed here, i.e: when DNS resolution + * completed synchronously and TURN allocation failed. + */ + PJ_LOG(4,(turn_sock->obj_name, "TURN session destroyed in setting " + "TURN server")); + pj_grp_lock_release(turn_sock->grp_lock); + return PJ_EGONE; } /* Done for now. The next work will be done when session state moved |