diff options
Diffstat (limited to 'src/network/socket/qabstractsocket.cpp')
-rw-r--r-- | src/network/socket/qabstractsocket.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp index 7284b124c5..6d47540b75 100644 --- a/src/network/socket/qabstractsocket.cpp +++ b/src/network/socket/qabstractsocket.cpp @@ -1354,15 +1354,29 @@ void QAbstractSocketPrivate::fetchConnectionParameters() } state = QAbstractSocket::ConnectedState; - emit q->stateChanged(state); - emit q->connected(); - #if defined(QABSTRACTSOCKET_DEBUG) qDebug("QAbstractSocketPrivate::fetchConnectionParameters() connection to %s:%i established", host.toString().toLatin1().constData(), port); #endif + emit q->stateChanged(state); + emit q->connected(); } +/*! \internal +*/ +qint64 QAbstractSocketPrivate::skip(qint64 maxSize) +{ + // if we're not connected, return -1 indicating EOF + if (!socketEngine || !socketEngine->isValid() || state != QAbstractSocket::ConnectedState) + return -1; + + // Caller, QIODevice::skip(), has ensured buffer is empty. So, wait + // for more data in buffered mode. + if (isBuffered) + return 0; + + return QIODevicePrivate::skip(maxSize); +} void QAbstractSocketPrivate::pauseSocketNotifiers(QAbstractSocket *socket) { |