QSslSocket: Data is sent after a certificate is downloaded on Windows.

QSslSocket was not transmitting existing data after finishing its
handshake if it had to download a certificate on Windows.

Task-number: QTBUG-48816
Change-Id: Ie35b5f4ca0f6c3c40fe2394166eb31f9f72dac55
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Richard J. Moore <rich@kde.org>
This commit is contained in:
Martin Porcelli 2016-03-01 12:10:04 -08:00 committed by Jędrzej Nowacki
parent 862fa24179
commit 5f3a262a73

View File

@ -1368,8 +1368,12 @@ void QSslSocketBackendPrivate::_q_caRootLoaded(QSslCertificate cert, QSslCertifi
if (plainSocket)
plainSocket->resume();
paused = false;
if (checkSslErrors() && ssl)
if (checkSslErrors() && ssl) {
bool willClose = (autoStartHandshake && pendingClose);
continueHandshake();
if (!willClose)
transmit();
}
}
class QWindowsCaRootFetcherThread : public QThread