diff options
author | Anton Kudryavtsev <anton.kudryavtsev@vk.team> | 2023-08-30 11:41:30 +0300 |
---|---|---|
committer | Anton Kudryavtsev <anton.kudryavtsev@vk.team> | 2023-08-31 14:48:03 +0300 |
commit | e84d9ea5e685a2a5cfa038403ed3f9b7dae35d62 (patch) | |
tree | 0048b780d6bc117003b3795842f048f0c4dc4eb1 /src/network/access/qnetworkrequest.cpp | |
parent | 514a6776e1055015ace1ef6378834a6c4d776864 (diff) |
qnetworkrequest: extract method
De-duplicate code for cookie header making
Change-Id: I3ac59445089ee151a2f719454fa50cb9f37f72e4
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/network/access/qnetworkrequest.cpp')
-rw-r--r-- | src/network/access/qnetworkrequest.cpp | 50 |
1 files changed, 20 insertions, 30 deletions
diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp index 0272ff1899..79ef95eadf 100644 --- a/src/network/access/qnetworkrequest.cpp +++ b/src/network/access/qnetworkrequest.cpp @@ -1056,6 +1056,22 @@ static QByteArray headerName(QNetworkRequest::KnownHeaders header) return QByteArray(); } +static QByteArray makeCookieHeader(const QVariant &value, QNetworkCookie::RawForm type, QByteArrayView separator) +{ + QList<QNetworkCookie> cookies = qvariant_cast<QList<QNetworkCookie> >(value); + if (cookies.isEmpty() && value.userType() == qMetaTypeId<QNetworkCookie>()) + cookies << qvariant_cast<QNetworkCookie>(value); + + QByteArray result; + for (const QNetworkCookie &cookie : std::as_const(cookies)) { + result += cookie.toRawForm(type); + result += separator; + } + if (!result.isEmpty()) + result.chop(separator.size()); + return result; +} + static QByteArray headerValue(QNetworkRequest::KnownHeaders header, const QVariant &value) { switch (header) { @@ -1091,37 +1107,11 @@ static QByteArray headerValue(QNetworkRequest::KnownHeaders header, const QVaria return value.toByteArray(); } - case QNetworkRequest::CookieHeader: { - QList<QNetworkCookie> cookies = qvariant_cast<QList<QNetworkCookie> >(value); - if (cookies.isEmpty() && value.userType() == qMetaTypeId<QNetworkCookie>()) - cookies << qvariant_cast<QNetworkCookie>(value); - - constexpr QByteArrayView separator = "; "; - QByteArray result; - for (const QNetworkCookie &cookie : std::as_const(cookies)) { - result += cookie.toRawForm(QNetworkCookie::NameAndValueOnly); - result += separator; - } - if (!result.isEmpty()) - result.chop(separator.size()); - return result; - } + case QNetworkRequest::CookieHeader: + return makeCookieHeader(value, QNetworkCookie::NameAndValueOnly, "; "); - case QNetworkRequest::SetCookieHeader: { - QList<QNetworkCookie> cookies = qvariant_cast<QList<QNetworkCookie> >(value); - if (cookies.isEmpty() && value.userType() == qMetaTypeId<QNetworkCookie>()) - cookies << qvariant_cast<QNetworkCookie>(value); -\ - constexpr QByteArrayView separator = ", "; - QByteArray result; - for (const QNetworkCookie &cookie : std::as_const(cookies)) { - result += cookie.toRawForm(QNetworkCookie::Full); - result += separator; - } - if (!result.isEmpty()) - result.chop(separator.size()); - return result; - } + case QNetworkRequest::SetCookieHeader: + return makeCookieHeader(value, QNetworkCookie::Full, ", "); } return QByteArray(); |