diff options
Diffstat (limited to 'src/network/socket/qabstractsocket.cpp')
-rw-r--r-- | src/network/socket/qabstractsocket.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp index ac2fb1c34d..1906166257 100644 --- a/src/network/socket/qabstractsocket.cpp +++ b/src/network/socket/qabstractsocket.cpp @@ -591,8 +591,7 @@ QAbstractSocketPrivate::~QAbstractSocketPrivate() /*! \internal - Resets the socket layer, clears the read and write buffers and - deletes any socket notifiers. + Resets the socket layer and deletes any socket notifiers. */ void QAbstractSocketPrivate::resetSocketLayer() { @@ -1834,6 +1833,7 @@ qintptr QAbstractSocket::socketDescriptor() const as a valid socket descriptor; otherwise returns \c false. The socket is opened in the mode specified by \a openMode, and enters the socket state specified by \a socketState. + Read and write buffers are cleared, discarding any pending data. \b{Note:} It is not possible to initialize two abstract sockets with the same native socket descriptor. @@ -1846,6 +1846,8 @@ bool QAbstractSocket::setSocketDescriptor(qintptr socketDescriptor, SocketState Q_D(QAbstractSocket); d->resetSocketLayer(); + d->writeBuffer.clear(); + d->buffer.clear(); d->socketEngine = QAbstractSocketEngine::createSocketEngine(socketDescriptor, this); if (!d->socketEngine) { d->socketError = UnsupportedSocketOperationError; @@ -2310,6 +2312,7 @@ void QAbstractSocket::abort() #if defined (QABSTRACTSOCKET_DEBUG) qDebug("QAbstractSocket::abort()"); #endif + d->writeBuffer.clear(); if (d->state == UnconnectedState) return; #ifndef QT_NO_SSL @@ -2324,7 +2327,6 @@ void QAbstractSocket::abort() d->connectTimer = 0; } - d->writeBuffer.clear(); d->abortCalled = true; close(); } |