From 78b101f09d01141488261b96dcc01c9aec5f1649 Mon Sep 17 00:00:00 2001 From: Christian Beier Date: Wed, 28 Dec 2016 19:41:52 +0100 Subject: [PATCH] LibVNCServer: fix starting of an onHold-client in threaded mode. Discovered by madscientist159 on 11 Jan 2015: "noted in testing with the threaded server build, whereby if newClientHook() returned RFB_CLIENT_ON_HOLD there was no way to release the hold when the server became ready" --- libvncserver/main.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/libvncserver/main.c b/libvncserver/main.c index 47dac11..dbda77d 100644 --- a/libvncserver/main.c +++ b/libvncserver/main.c @@ -612,21 +612,18 @@ listenerRun(void *data) return(NULL); } -void -rfbStartOnHoldClient(rfbClientPtr cl) -{ - pthread_create(&cl->client_thread, NULL, clientInput, (void *)cl); -} - -#else +#endif void rfbStartOnHoldClient(rfbClientPtr cl) { - cl->onHold = FALSE; + cl->onHold = FALSE; +#ifdef LIBVNCSERVER_HAVE_LIBPTHREAD + if(cl->screen->backgroundLoop) + pthread_create(&cl->client_thread, NULL, clientInput, (void *)cl); +#endif } -#endif void rfbRefuseOnHoldClient(rfbClientPtr cl)