From: Jay Freeman (saurik) Date: Mon, 10 Nov 2014 04:06:38 +0000 (-0800) Subject: Better organize internal VNCClient setup details. X-Git-Tag: v0.9.3500~9 X-Git-Url: https://git.saurik.com/veency.git/commitdiff_plain/86ddffec9e6d93960bba059b35090bc7b68c911b Better organize internal VNCClient setup details. --- 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; }