diff options
Diffstat (limited to 'src/network/socket')
-rw-r--r-- | src/network/socket/qabstractsocket.cpp | 5 | ||||
-rw-r--r-- | src/network/socket/qhttpsocketengine.cpp | 5 | ||||
-rw-r--r-- | src/network/socket/qlocalserver_win.cpp | 10 | ||||
-rw-r--r-- | src/network/socket/qlocalsocket.cpp | 2 | ||||
-rw-r--r-- | src/network/socket/qlocalsocket_win.cpp | 6 | ||||
-rw-r--r-- | src/network/socket/qnativesocketengine_win.cpp | 7 |
6 files changed, 19 insertions, 16 deletions
diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp index 13e10e4102..4d9fda00ce 100644 --- a/src/network/socket/qabstractsocket.cpp +++ b/src/network/socket/qabstractsocket.cpp @@ -1609,7 +1609,10 @@ bool QAbstractSocketPrivate::bind(const QHostAddress &address, quint16 port, QAb localPort = socketEngine->localPort(); emit q->stateChanged(state); - if (socketType == QAbstractSocket::UdpSocket) + // A slot attached to stateChanged() signal can break our invariant: + // by closing the socket it will reset its socket engine - thus we + // have additional check (isValid()) ... + if (q->isValid() && socketType == QAbstractSocket::UdpSocket) socketEngine->setReadNotificationEnabled(true); return true; } diff --git a/src/network/socket/qhttpsocketengine.cpp b/src/network/socket/qhttpsocketengine.cpp index b543ea7981..9427c3b00d 100644 --- a/src/network/socket/qhttpsocketengine.cpp +++ b/src/network/socket/qhttpsocketengine.cpp @@ -627,10 +627,9 @@ void QHttpSocketEngine::slotSocketReadNotification() // from http spec is also allowed. if (proxyConnectionHeader.isEmpty()) proxyConnectionHeader = d->reply->headerField("Connection"); - proxyConnectionHeader = proxyConnectionHeader.toLower(); - if (proxyConnectionHeader == "close") { + if (proxyConnectionHeader.compare("close", Qt::CaseSensitive) == 0) { willClose = true; - } else if (proxyConnectionHeader == "keep-alive") { + } else if (proxyConnectionHeader.compare("keep-alive", Qt::CaseInsensitive) == 0) { willClose = false; } else { // no Proxy-Connection header, so use the default diff --git a/src/network/socket/qlocalserver_win.cpp b/src/network/socket/qlocalserver_win.cpp index ced923ced1..2d71a7e730 100644 --- a/src/network/socket/qlocalserver_win.cpp +++ b/src/network/socket/qlocalserver_win.cpp @@ -89,7 +89,7 @@ bool QLocalServerPrivate::addListener() DWORD dwBufferSize = 0; GetTokenInformation(hToken, TokenUser, 0, 0, &dwBufferSize); tokenUserBuffer.fill(0, dwBufferSize); - PTOKEN_USER pTokenUser = (PTOKEN_USER)tokenUserBuffer.data(); + auto pTokenUser = reinterpret_cast<PTOKEN_USER>(tokenUserBuffer.data()); if (!GetTokenInformation(hToken, TokenUser, pTokenUser, dwBufferSize, &dwBufferSize)) { setError(QLatin1String("QLocalServerPrivate::addListener")); CloseHandle(hToken); @@ -99,7 +99,7 @@ bool QLocalServerPrivate::addListener() dwBufferSize = 0; GetTokenInformation(hToken, TokenPrimaryGroup, 0, 0, &dwBufferSize); tokenGroupBuffer.fill(0, dwBufferSize); - PTOKEN_PRIMARY_GROUP pTokenGroup = (PTOKEN_PRIMARY_GROUP)tokenGroupBuffer.data(); + auto pTokenGroup = reinterpret_cast<PTOKEN_PRIMARY_GROUP>(tokenGroupBuffer.data()); if (!GetTokenInformation(hToken, TokenPrimaryGroup, pTokenGroup, dwBufferSize, &dwBufferSize)) { setError(QLatin1String("QLocalServerPrivate::addListener")); CloseHandle(hToken); @@ -140,7 +140,7 @@ bool QLocalServerPrivate::addListener() aclSize = (aclSize + (sizeof(DWORD) - 1)) & 0xfffffffc; aclBuffer.fill(0, aclSize); - PACL acl = (PACL)aclBuffer.data(); + auto acl = reinterpret_cast<PACL>(aclBuffer.data()); InitializeAcl(acl, aclSize, ACL_REVISION_DS); if (socketOptions & QLocalServer::UserAccessOption) { @@ -176,7 +176,7 @@ bool QLocalServerPrivate::addListener() } listener.handle = CreateNamedPipe( - (const wchar_t *)fullServerName.utf16(), // pipe name + reinterpret_cast<const wchar_t *>(fullServerName.utf16()), // pipe name PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED, // read/write access PIPE_TYPE_BYTE | // byte type pipe PIPE_READMODE_BYTE | // byte-read mode @@ -299,7 +299,7 @@ void QLocalServerPrivate::_q_onNewConnection() tryAgain = true; // Make this the last thing so connected slots can wreak the least havoc - q->incomingConnection((quintptr)handle); + q->incomingConnection(reinterpret_cast<quintptr>(handle)); } else { if (GetLastError() != ERROR_IO_INCOMPLETE) { q->close(); diff --git a/src/network/socket/qlocalsocket.cpp b/src/network/socket/qlocalsocket.cpp index 6fec2fdbd2..1c34cd13ee 100644 --- a/src/network/socket/qlocalsocket.cpp +++ b/src/network/socket/qlocalsocket.cpp @@ -368,7 +368,7 @@ QLocalSocket::QLocalSocket(QObject * parent) */ QLocalSocket::~QLocalSocket() { - close(); + QLocalSocket::close(); #if !defined(Q_OS_WIN) && !defined(QT_LOCALSOCKET_TCP) Q_D(QLocalSocket); d->unixSocket.setParent(0); diff --git a/src/network/socket/qlocalsocket_win.cpp b/src/network/socket/qlocalsocket_win.cpp index ae94cb9d51..8e20f9efbe 100644 --- a/src/network/socket/qlocalsocket_win.cpp +++ b/src/network/socket/qlocalsocket_win.cpp @@ -155,7 +155,7 @@ void QLocalSocket::connectToServer(OpenMode openMode) forever { DWORD permissions = (openMode & QIODevice::ReadOnly) ? GENERIC_READ : 0; permissions |= (openMode & QIODevice::WriteOnly) ? GENERIC_WRITE : 0; - localSocket = CreateFile((const wchar_t *)d->fullServerName.utf16(), // pipe name + localSocket = CreateFile(reinterpret_cast<const wchar_t *>(d->fullServerName.utf16()), // pipe name permissions, 0, // no sharing NULL, // default security attributes @@ -183,7 +183,7 @@ void QLocalSocket::connectToServer(OpenMode openMode) } // we have a valid handle - if (setSocketDescriptor((qintptr)localSocket, ConnectedState, openMode)) + if (setSocketDescriptor(reinterpret_cast<qintptr>(localSocket), ConnectedState, openMode)) emit connected(); } @@ -371,7 +371,7 @@ void QLocalSocketPrivate::_q_canWrite() qintptr QLocalSocket::socketDescriptor() const { Q_D(const QLocalSocket); - return (qintptr)d->handle; + return reinterpret_cast<qintptr>(d->handle); } qint64 QLocalSocket::readBufferSize() const diff --git a/src/network/socket/qnativesocketengine_win.cpp b/src/network/socket/qnativesocketengine_win.cpp index 1b84b26d83..c999bd2088 100644 --- a/src/network/socket/qnativesocketengine_win.cpp +++ b/src/network/socket/qnativesocketengine_win.cpp @@ -294,7 +294,8 @@ static inline QAbstractSocket::SocketType qt_socket_getType(qintptr socketDescri { int value = 0; QT_SOCKLEN_T valueSize = sizeof(value); - if (::getsockopt(socketDescriptor, SOL_SOCKET, SO_TYPE, (char *) &value, &valueSize) != 0) { + if (::getsockopt(socketDescriptor, SOL_SOCKET, SO_TYPE, + reinterpret_cast<char *>(&value), &valueSize) != 0) { WS_ERROR_DEBUG(WSAGetLastError()); } else { if (value == SOCK_STREAM) @@ -361,7 +362,7 @@ bool QNativeSocketEnginePrivate::createNewSocket(QAbstractSocket::SocketType soc #ifdef HANDLE_FLAG_INHERIT if (socket != INVALID_SOCKET) { // make non inheritable the old way - BOOL handleFlags = SetHandleInformation((HANDLE)socket, HANDLE_FLAG_INHERIT, 0); + BOOL handleFlags = SetHandleInformation(reinterpret_cast<HANDLE>(socket), HANDLE_FLAG_INHERIT, 0); #ifdef QNATIVESOCKETENGINE_DEBUG qDebug() << "QNativeSocketEnginePrivate::createNewSocket - set inheritable" << handleFlags; #else @@ -1443,7 +1444,7 @@ qint64 QNativeSocketEnginePrivate::nativeWrite(const char *data, qint64 len) for (;;) { WSABUF buf; - buf.buf = (char*)data + ret; + buf.buf = const_cast<char*>(data) + ret; buf.len = bytesToSend; DWORD flags = 0; DWORD bytesWritten = 0; |