From 86ddffec9e6d93960bba059b35090bc7b68c911b Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Sun, 9 Nov 2014 20:06:38 -0800 Subject: [PATCH] Better organize internal VNCClient setup details. --- Tweak.mm | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/Tweak.mm b/Tweak.mm index 1d0a930..b10572c 100644 --- a/Tweak.mm +++ b/Tweak.mm @@ -376,10 +376,6 @@ MSInstanceMessage2(void, VNCAlertItem, alertSheet,buttonClicked, id, sheet, int, switch (button) { case 1: VNCAction(RFB_CLIENT_ACCEPT); - - @synchronized (condition_) { - [VNCBridge registerClient]; - } break; case 2: @@ -832,25 +828,26 @@ static void VNCDisconnect(rfbClientPtr client) { } static rfbNewClientAction VNCClient(rfbClientPtr client) { - @synchronized (condition_) { - if (screen_->authPasswdData != NULL) { - [VNCBridge performSelectorOnMainThread:@selector(registerClient) withObject:nil waitUntilDone:YES]; - client->clientGoneHook = &VNCDisconnect; - return RFB_CLIENT_ACCEPT; - } - } - [condition_ lock]; - client_ = client; - [VNCBridge performSelectorOnMainThread:@selector(askForConnection) withObject:nil waitUntilDone:NO]; - while (action_ == RFB_CLIENT_ON_HOLD) - [condition_ wait]; - rfbNewClientAction action(action_); - action_ = RFB_CLIENT_ON_HOLD; - [condition_ unlock]; - if (action == RFB_CLIENT_ACCEPT) + rfbNewClientAction action; + if (screen_->authPasswdData != NULL) + action = RFB_CLIENT_ACCEPT; + else { + client_ = client; + [VNCBridge performSelectorOnMainThread:@selector(askForConnection) withObject:nil waitUntilDone:NO]; + while (action_ == RFB_CLIENT_ON_HOLD) + [condition_ wait]; + action = action_; + action_ = RFB_CLIENT_ON_HOLD; + } + + if (action == RFB_CLIENT_ACCEPT) { + [VNCBridge performSelectorOnMainThread:@selector(registerClient) withObject:nil waitUntilDone:YES]; client->clientGoneHook = &VNCDisconnect; + } + + [condition_ unlock]; return action; } -- 2.47.2