summaryrefslogtreecommitdiff
path: root/pjnath/src/pjnath/turn_sock.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjnath/src/pjnath/turn_sock.c')
-rw-r--r--pjnath/src/pjnath/turn_sock.c8
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