From 634d936a027664b6e0d1cb46f71e0070f5f5a9bc Mon Sep 17 00:00:00 2001 From: Anthony Minessale <anthm@freeswitch.org> Date: Wed, 20 Nov 2013 23:50:15 +0500 Subject: [PATCH] kill socket in esl_disconnect to prevent blocking --- libs/esl/src/esl.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libs/esl/src/esl.c b/libs/esl/src/esl.c index 7a29844ab4..67b82fbe6d 100644 --- a/libs/esl/src/esl.c +++ b/libs/esl/src/esl.c @@ -1123,6 +1123,12 @@ ESL_DECLARE(esl_status_t) esl_disconnect(esl_handle_t *handle) return ESL_FAIL; } + if (handle->sock != ESL_SOCK_INVALID) { + closesocket(handle->sock); + handle->sock = ESL_SOCK_INVALID; + status = ESL_SUCCESS; + } + if (mutex) { esl_mutex_lock(mutex); } @@ -1145,12 +1151,6 @@ ESL_DECLARE(esl_status_t) esl_disconnect(esl_handle_t *handle) esl_event_safe_destroy(&handle->last_ievent); esl_event_safe_destroy(&handle->info_event); - if (handle->sock != ESL_SOCK_INVALID) { - closesocket(handle->sock); - handle->sock = ESL_SOCK_INVALID; - status = ESL_SUCCESS; - } - if (mutex) { esl_mutex_unlock(mutex); esl_mutex_lock(mutex);