summaryrefslogtreecommitdiffstats
path: root/x11vnc/sslhelper.c
diff options
context:
space:
mode:
authorrunge <runge@karlrunge.com>2009-05-21 10:57:03 -0400
committerrunge <runge@karlrunge.com>2009-05-21 10:57:03 -0400
commit94d058b35f075cec2d6e8b6e37ee1a94086ea3f8 (patch)
tree6cec0620ab70b5db6b33645dbcac1071f3c7a556 /x11vnc/sslhelper.c
parent804335f9d296440bb708ca844f5d89b58b50b0c6 (diff)
downloadlibtdevnc-94d058b35f075cec2d6e8b6e37ee1a94086ea3f8.tar.gz
libtdevnc-94d058b35f075cec2d6e8b6e37ee1a94086ea3f8.zip
Thread safety. Fix -clip -in -rawfb. Try to avoid Xorg stuck
key bug.
Diffstat (limited to 'x11vnc/sslhelper.c')
-rw-r--r--x11vnc/sslhelper.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/x11vnc/sslhelper.c b/x11vnc/sslhelper.c
index 6b49d47..39ab41c 100644
--- a/x11vnc/sslhelper.c
+++ b/x11vnc/sslhelper.c
@@ -2565,7 +2565,7 @@ void accept_openssl(int mode, int presock) {
return;
}
- client = rfbNewClient(screen, vsock);
+ client = create_new_client(vsock, 0);
openssl_last_helper_pid = 0;
if (client) {
@@ -2585,12 +2585,16 @@ void accept_openssl(int mode, int presock) {
client->protocolMinorVersion = 8;
if (!finish_vencrypt_auth(client, vencrypt_sel)) {
rfbCloseClient(client);
+ client = NULL;
}
} else if (anontls_sel != 0) {
client->protocolMajorVersion = 3;
client->protocolMinorVersion = 8;
rfbAuthNewClient(client);
}
+ if (use_threads && client != NULL) {
+ rfbStartOnHoldClient(client);
+ }
/* try to get RFB proto done now. */
progress_client();
} else {