Fixed channel duplicate disconnect handling
authorArmin Novak <armin.novak@thincast.com>
Mon, 9 Apr 2018 09:10:03 +0000 (11:10 +0200)
committerArmin Novak <armin.novak@thincast.com>
Mon, 9 Apr 2018 09:26:36 +0000 (11:26 +0200)
channels/rail/client/rail_main.c

index 6671f48..1373b8a 100644 (file)
@@ -682,7 +682,7 @@ static UINT rail_virtual_channel_event_connected(railPlugin* rail, LPVOID pData,
        }
 
        if (!(rail->thread = CreateThread(NULL, 0,
-                                                                         rail_virtual_channel_client_thread, (void*) rail, 0,
+                                         rail_virtual_channel_client_thread, (void*) rail, 0,
                                          NULL)))
        {
                WLog_ERR(TAG, "CreateThread failed!");
@@ -703,6 +703,9 @@ static UINT rail_virtual_channel_event_disconnected(railPlugin* rail)
 {
        UINT rc;
 
+       if (rail->OpenHandle == 0)
+               return CHANNEL_RC_OK;
+
        if (MessageQueue_PostQuit(rail->queue, 0)
            && (WaitForSingleObject(rail->thread, INFINITE) == WAIT_FAILED))
        {