summaryrefslogtreecommitdiffstats
path: root/src/network/access/qnetworkrequest.cpp
diff options
context:
space:
mode:
authorAnton Kudryavtsev <anton.kudryavtsev@vk.team>2023-08-30 11:41:30 +0300
committerAnton Kudryavtsev <anton.kudryavtsev@vk.team>2023-08-31 14:48:03 +0300
commite84d9ea5e685a2a5cfa038403ed3f9b7dae35d62 (patch)
tree0048b780d6bc117003b3795842f048f0c4dc4eb1 /src/network/access/qnetworkrequest.cpp
parent514a6776e1055015ace1ef6378834a6c4d776864 (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.cpp50
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();