summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKurt Pattyn <pattyn.kurt@gmail.com>2013-12-07 14:53:43 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-15 08:57:19 +0100
commit3169863ace045d53edda46b1840e76e1822b94e1 (patch)
tree051babf3c86a0d36b78d81b5da1695d6429aae26 /src
parent7c11e7ec195955f6b66cdcd19110f6daf303e023 (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.cpp8
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();
}