diff --git a/channels/cliprdr/server/cliprdr_main.c b/channels/cliprdr/server/cliprdr_main.c index 110009994..43202ee2a 100644 --- a/channels/cliprdr/server/cliprdr_main.c +++ b/channels/cliprdr/server/cliprdr_main.c @@ -1356,10 +1356,13 @@ static DWORD WINAPI cliprdr_server_thread(LPVOID arg) events[nCount++] = cliprdr->StopEvent; events[nCount++] = ChannelEvent; - if ((error = cliprdr_server_init(context))) + if (context->autoInitializationSequence) { - WLog_ERR(TAG, "cliprdr_server_init failed with error %"PRIu32"!", error); - goto out; + if ((error = cliprdr_server_init(context))) + { + WLog_ERR(TAG, "cliprdr_server_init failed with error %"PRIu32"!", error); + goto out; + } } while (1) @@ -1566,6 +1569,7 @@ CliprdrServerContext* cliprdr_server_context_new(HANDLE vcm) if (context) { + context->autoInitializationSequence = TRUE; context->Open = cliprdr_server_open; context->Close = cliprdr_server_close; context->Start = cliprdr_server_start; diff --git a/include/freerdp/server/cliprdr.h b/include/freerdp/server/cliprdr.h index 440b8afa8..0bdd2603e 100644 --- a/include/freerdp/server/cliprdr.h +++ b/include/freerdp/server/cliprdr.h @@ -103,6 +103,7 @@ struct _cliprdr_server_context psCliprdrServerFileContentsResponse ServerFileContentsResponse; rdpContext* rdpcontext; + BOOL autoInitializationSequence; UINT32 lastRequestedFormatId; };