From d784954bcafc32a9f6dc131b2487bfccd70a4e86 Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Mon, 9 Apr 2018 11:09:59 +0200 Subject: [PATCH] Fixed channel duplicate disconnect handling --- channels/encomsp/client/encomsp_main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/channels/encomsp/client/encomsp_main.c b/channels/encomsp/client/encomsp_main.c index 35c575622..b9d6b947b 100644 --- a/channels/encomsp/client/encomsp_main.c +++ b/channels/encomsp/client/encomsp_main.c @@ -1087,7 +1087,7 @@ static UINT encomsp_virtual_channel_event_connected(encomspPlugin* encomsp, } if (!(encomsp->thread = CreateThread(NULL, 0, - encomsp_virtual_channel_client_thread, (void*) encomsp, + encomsp_virtual_channel_client_thread, (void*) encomsp, 0, NULL))) { WLog_ERR(TAG, "CreateThread failed!"); @@ -1107,6 +1107,9 @@ static UINT encomsp_virtual_channel_event_disconnected(encomspPlugin* encomsp) { UINT rc; + if (encomsp->OpenHandle == 0) + return CHANNEL_RC_OK; + if (MessageQueue_PostQuit(encomsp->queue, 0) && (WaitForSingleObject(encomsp->thread, INFINITE) == WAIT_FAILED)) {