+ 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];