diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-10-29 16:06:48 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-10-29 16:06:48 (GMT) |
commit | 7db218d6860a04df238735ff692010f0910d0c92 (patch) | |
tree | ad8033623855b3afb17752552ca56b096c1b9159 /src/network/socket | |
parent | 8943b44c38ee6244c4a5b190c2b35879b1921843 (diff) | |
parent | c02ef9eb331f03dbd59d2fd938c53b54f5c65cea (diff) | |
download | Qt-7db218d6860a04df238735ff692010f0910d0c92.zip Qt-7db218d6860a04df238735ff692010f0910d0c92.tar.gz Qt-7db218d6860a04df238735ff692010f0910d0c92.tar.bz2 |
Merge branch 4.7 into qt-master-from-4.7
Diffstat (limited to 'src/network/socket')
-rw-r--r-- | src/network/socket/qabstractsocket.cpp | 30 | ||||
-rw-r--r-- | src/network/socket/qabstractsocket_p.h | 7 | ||||
-rw-r--r-- | src/network/socket/qlocalserver_unix.cpp | 2 | ||||
-rw-r--r-- | src/network/socket/qnativesocketengine_win.cpp | 2 |
4 files changed, 39 insertions, 2 deletions
diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp index 66cdffb..c638e2a 100644 --- a/src/network/socket/qabstractsocket.cpp +++ b/src/network/socket/qabstractsocket.cpp @@ -1210,6 +1210,36 @@ void QAbstractSocketPrivate::fetchConnectionParameters() #endif } + +void QAbstractSocketPrivate::pauseSocketNotifiers(QAbstractSocket *socket) +{ + QAbstractSocketEngine *socketEngine = socket->d_func()->socketEngine; + if (!socketEngine) + return; + socket->d_func()->prePauseReadSocketNotifierState = socketEngine->isReadNotificationEnabled(); + socket->d_func()->prePauseWriteSocketNotifierState = socketEngine->isWriteNotificationEnabled(); + socket->d_func()->prePauseExceptionSocketNotifierState = socketEngine->isExceptionNotificationEnabled(); + socketEngine->setReadNotificationEnabled(false); + socketEngine->setWriteNotificationEnabled(false); + socketEngine->setExceptionNotificationEnabled(false); +} + +void QAbstractSocketPrivate::resumeSocketNotifiers(QAbstractSocket *socket) +{ + QAbstractSocketEngine *socketEngine = socket->d_func()->socketEngine; + if (!socketEngine) + return; + socketEngine->setReadNotificationEnabled(socket->d_func()->prePauseReadSocketNotifierState); + socketEngine->setWriteNotificationEnabled(socket->d_func()->prePauseWriteSocketNotifierState); + socketEngine->setExceptionNotificationEnabled(socket->d_func()->prePauseExceptionSocketNotifierState); +} + +QAbstractSocketEngine* QAbstractSocketPrivate::getSocketEngine(QAbstractSocket *socket) +{ + return socket->d_func()->socketEngine; +} + + /*! \internal Constructs a new abstract socket of type \a socketType. The \a diff --git a/src/network/socket/qabstractsocket_p.h b/src/network/socket/qabstractsocket_p.h index 6c333d3..8ca83fc 100644 --- a/src/network/socket/qabstractsocket_p.h +++ b/src/network/socket/qabstractsocket_p.h @@ -155,6 +155,13 @@ public: QAbstractSocket::SocketState state; QAbstractSocket::SocketError socketError; + + bool prePauseReadSocketNotifierState; + bool prePauseWriteSocketNotifierState; + bool prePauseExceptionSocketNotifierState; + static void pauseSocketNotifiers(QAbstractSocket*); + static void resumeSocketNotifiers(QAbstractSocket*); + static QAbstractSocketEngine* getSocketEngine(QAbstractSocket*); }; QT_END_NAMESPACE diff --git a/src/network/socket/qlocalserver_unix.cpp b/src/network/socket/qlocalserver_unix.cpp index 560f5f6..c218d89 100644 --- a/src/network/socket/qlocalserver_unix.cpp +++ b/src/network/socket/qlocalserver_unix.cpp @@ -119,7 +119,7 @@ bool QLocalServerPrivate::listen(const QString &requestedServerName) // subsequent call to accept will not block in any case // // This change can be removed once more generic fix to select thread - // syncronization problem is implemented. + // synchronization problem is implemented. int flags = fcntl(listenSocket, F_GETFL, 0); if (-1 == flags || -1 == (fcntl(listenSocket, F_SETFL, flags | O_NONBLOCK))) { diff --git a/src/network/socket/qnativesocketengine_win.cpp b/src/network/socket/qnativesocketengine_win.cpp index 91b8b2e..dbf443e 100644 --- a/src/network/socket/qnativesocketengine_win.cpp +++ b/src/network/socket/qnativesocketengine_win.cpp @@ -801,7 +801,7 @@ int QNativeSocketEnginePrivate::nativeAccept() { int acceptedDescriptor = WSAAccept(socketDescriptor, 0,0,0,0); if (acceptedDescriptor != -1 && QAbstractEventDispatcher::instance()) { - // Becuase of WSAAsyncSelect() WSAAccept returns a non blocking socket + // Because of WSAAsyncSelect() WSAAccept returns a non blocking socket // with the same attributes as the listening socket including the current // WSAAsyncSelect(). To be able to change the socket to blocking mode the // WSAAsyncSelect() call must be cancled. |