diff options
author | Kurt Pattyn <pattyn.kurt@gmail.com> | 2013-12-07 14:53:43 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-15 08:57:19 +0100 |
commit | 3169863ace045d53edda46b1840e76e1822b94e1 (patch) | |
tree | 051babf3c86a0d36b78d81b5da1695d6429aae26 /src | |
parent | 7c11e7ec195955f6b66cdcd19110f6daf303e023 (diff) |
Clear read- and write buffers
Added calls to clear the write and read buffers when
- setSocketDescriptor is called
- abort is called
Removed clears the read and write buffers from
the documentation of resetSocketLayer.
Added documentation to setSocketDescriptor
describing that read and write buffers are cleared.
Task-number: QTBUG-28914
Change-Id: I25a4b679708bdea0b259c50f1d10a3e9271dabb9
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Diffstat (limited to 'src')
-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 47fec38283..e0e13205fd 100644 --- a/src/network/socket/qabstractsocket.cpp +++ b/src/network/socket/qabstractsocket.cpp @@ -578,8 +578,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() { @@ -1821,6 +1820,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. @@ -1833,6 +1833,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; @@ -2281,6 +2283,7 @@ void QAbstractSocket::abort() #if defined (QABSTRACTSOCKET_DEBUG) qDebug("QAbstractSocket::abort()"); #endif + d->writeBuffer.clear(); if (d->state == UnconnectedState) return; #ifndef QT_NO_SSL @@ -2295,7 +2298,6 @@ void QAbstractSocket::abort() d->connectTimer = 0; } - d->writeBuffer.clear(); d->abortCalled = true; close(); } |