diff options
author | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2015-07-17 17:53:19 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2015-07-17 17:53:19 +0200 |
commit | 68316e65849b3af4316268312254df79fa28f8c6 (patch) | |
tree | 58d99a204fe8666b7de4d400af2ee4042635c0e9 /src/network/ssl/qsslsocket_openssl.cpp | |
parent | 954f0d93976362d29044439e4eaa11d2dff16624 (diff) | |
parent | 4a1e5dbade4bab55f39bd368480dcca9a11e4b38 (diff) |
Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
doc/global/manifest-meta.qdocconf
src/corelib/global/qnamespace.qdoc
src/corelib/io/qstorageinfo_unix.cpp
src/corelib/tools/qtools_p.h
src/sql/drivers/psql/qsql_psql.cpp
Change-Id: I23a15ac84e03ad61d865e3df872b013eb0752949
Diffstat (limited to 'src/network/ssl/qsslsocket_openssl.cpp')
-rw-r--r-- | src/network/ssl/qsslsocket_openssl.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index 049666b70b..2b4c64e89f 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -1530,6 +1530,13 @@ void QSslSocketBackendPrivate::disconnected() { if (plainSocket->bytesAvailable() <= 0) destroySslContext(); + else { + // Move all bytes into the plain buffer + qint64 tmpReadBufferMaxSize = readBufferMaxSize; + readBufferMaxSize = 0; // reset temporarily so the plain socket buffer is completely drained + transmit(); + readBufferMaxSize = tmpReadBufferMaxSize; + } //if there is still buffered data in the plain socket, don't destroy the ssl context yet. //it will be destroyed when the socket is deleted. } |