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 |
2 files changed, 6 insertions, 4 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 |