diff options
Diffstat (limited to 'src/network/access/qnetworkrequest.cpp')
-rw-r--r-- | src/network/access/qnetworkrequest.cpp | 48 |
1 files changed, 26 insertions, 22 deletions
diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp index 07eaf2f484..606d37cc4a 100644 --- a/src/network/access/qnetworkrequest.cpp +++ b/src/network/access/qnetworkrequest.cpp @@ -13,6 +13,7 @@ #include "QtCore/qshareddata.h" #include "QtCore/qlocale.h" #include "QtCore/qdatetime.h" +#include "QtCore/private/qtools_p.h" #include <ctype.h> #if QT_CONFIG(datestring) @@ -481,10 +482,9 @@ QNetworkRequest::QNetworkRequest() // Initial values proposed by RFC 7540 are quite draconian, but we // know about servers configured with this value as maximum possible, // rejecting our SETTINGS frame and sending us a GOAWAY frame with the - // flow control error set. Unless an application sets its own parameters, - // we don't send SETTINGS_INITIAL_WINDOW_SIZE, but increase - // (via WINDOW_UPDATE) the session window size. These are our 'defaults': - d->h2Configuration.setStreamReceiveWindowSize(Http2::defaultSessionWindowSize); + // flow control error set. If this causes a problem - the app should + // set a proper configuration. We'll use our defaults, as documented. + d->h2Configuration.setStreamReceiveWindowSize(Http2::qtDefaultStreamReceiveWindowSize); d->h2Configuration.setSessionReceiveWindowSize(Http2::maxSessionReceiveWindowSize); d->h2Configuration.setServerPushEnabled(false); #endif // QT_CONFIG(http) @@ -859,7 +859,7 @@ void QNetworkRequest::setPeerVerifyName(const QString &peerName) \list \li Window size for connection-level flowcontrol is 2147483647 octets - \li Window size for stream-level flowcontrol is 21474836 octets + \li Window size for stream-level flowcontrol is 214748364 octets \li Max frame size is 16384 \endlist @@ -1061,7 +1061,7 @@ static QByteArray headerValue(QNetworkRequest::KnownHeaders header, const QVaria QByteArray result; bool first = true; - for (const QNetworkCookie &cookie : qAsConst(cookies)) { + for (const QNetworkCookie &cookie : std::as_const(cookies)) { if (!first) result += "; "; first = false; @@ -1077,7 +1077,7 @@ static QByteArray headerValue(QNetworkRequest::KnownHeaders header, const QVaria QByteArray result; bool first = true; - for (const QNetworkCookie &cookie : qAsConst(cookies)) { + for (const QNetworkCookie &cookie : std::as_const(cookies)) { if (!first) result += ", "; first = false; @@ -1095,48 +1095,52 @@ static int parseHeaderName(const QByteArray &headerName) if (headerName.isEmpty()) return -1; - switch (tolower(headerName.at(0))) { + auto is = [&](const char *what) { + return qstrnicmp(headerName.data(), headerName.size(), what) == 0; + }; + + switch (QtMiscUtils::toAsciiLower(headerName.front())) { case 'c': - if (headerName.compare("content-type", Qt::CaseInsensitive) == 0) + if (is("content-type")) return QNetworkRequest::ContentTypeHeader; - else if (headerName.compare("content-length", Qt::CaseInsensitive) == 0) + else if (is("content-length")) return QNetworkRequest::ContentLengthHeader; - else if (headerName.compare("cookie", Qt::CaseInsensitive) == 0) + else if (is("cookie")) return QNetworkRequest::CookieHeader; - else if (qstricmp(headerName.constData(), "content-disposition") == 0) + else if (is("content-disposition")) return QNetworkRequest::ContentDispositionHeader; break; case 'e': - if (qstricmp(headerName.constData(), "etag") == 0) + if (is("etag")) return QNetworkRequest::ETagHeader; break; case 'i': - if (qstricmp(headerName.constData(), "if-modified-since") == 0) + if (is("if-modified-since")) return QNetworkRequest::IfModifiedSinceHeader; - if (qstricmp(headerName.constData(), "if-match") == 0) + if (is("if-match")) return QNetworkRequest::IfMatchHeader; - if (qstricmp(headerName.constData(), "if-none-match") == 0) + if (is("if-none-match")) return QNetworkRequest::IfNoneMatchHeader; break; case 'l': - if (headerName.compare("location", Qt::CaseInsensitive) == 0) + if (is("location")) return QNetworkRequest::LocationHeader; - else if (headerName.compare("last-modified", Qt::CaseInsensitive) == 0) + else if (is("last-modified")) return QNetworkRequest::LastModifiedHeader; break; case 's': - if (headerName.compare("set-cookie", Qt::CaseInsensitive) == 0) + if (is("set-cookie")) return QNetworkRequest::SetCookieHeader; - else if (headerName.compare("server", Qt::CaseInsensitive) == 0) + else if (is("server")) return QNetworkRequest::ServerHeader; break; case 'u': - if (headerName.compare("user-agent", Qt::CaseInsensitive) == 0) + if (is("user-agent")) return QNetworkRequest::UserAgentHeader; break; } @@ -1158,7 +1162,7 @@ static QVariant parseCookieHeader(const QByteArray &raw) const QList<QByteArray> cookieList = raw.split(';'); for (const QByteArray &cookie : cookieList) { QList<QNetworkCookie> parsed = QNetworkCookie::parseCookies(cookie.trimmed()); - if (parsed.count() != 1) + if (parsed.size() != 1) return QVariant(); // invalid Cookie: header result += parsed; |