diff options
author | kh1 <karsten.heimrich@digia.com> | 2012-10-25 12:53:53 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@digia.com> | 2012-10-25 17:46:07 +0200 |
commit | 2a73db7e34bd2a9f61455aad73df68294dd1b22c (patch) | |
tree | 657826d340340538a13aa43b6e885044a862bc60 /src/libs/installer/fsengineclient.cpp | |
parent | 528bca1008fa268fe200ac0dbad9ff06f9ea3c08 (diff) |
Fix freeze after rejecting UAC account (check GetLastError()).
Fixes too the case with runing a shared build. Since the
environment is not shared, we would not be able to load
missing libs, thus failing to start the server and endless
loop the wait for the servers connection.
Change-Id: If4c50783eb86488b3c2e0a92357750d9c17e7750
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Diffstat (limited to 'src/libs/installer/fsengineclient.cpp')
-rw-r--r-- | src/libs/installer/fsengineclient.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/libs/installer/fsengineclient.cpp b/src/libs/installer/fsengineclient.cpp index 3221b9f29..7e3ceb1d5 100644 --- a/src/libs/installer/fsengineclient.cpp +++ b/src/libs/installer/fsengineclient.cpp @@ -783,7 +783,8 @@ void FSEngineClientHandler::Private::maybeStartServer() if (!serverStarted) { // something went wrong with authorizing, either user pressed cancel or entered // wrong password - const QString fallback = serverCommand + QLatin1String(" ") + serverArguments.join(QLatin1String(" ")); + const QString fallback = serverCommand + QLatin1String(" ") + serverArguments + .join(QLatin1String(" ")); const QMessageBox::Button res = QInstaller::MessageBoxHandler::critical(QInstaller::MessageBoxHandler::currentBestSuitParent(), @@ -800,11 +801,9 @@ void FSEngineClientHandler::Private::maybeStartServer() serverStarted = QProcess::startDetached(serverCommand, serverArguments); } - // now wait for the socket to arrive - QTcpSocket s; - while (serverStarting && serverStarted) { - if (FSEngineClientHandler::instance().connect(&s)) - serverStarting = false; + if (serverStarted) { + QTcpSocket s; // now wait for the socket to arrive + serverStarted = FSEngineClientHandler::instance().connect(&s); } serverStarting = false; } |