From f757662486f2b44cc7cab702c7e89edbc594f4ff Mon Sep 17 00:00:00 2001 From: Juha Vuolle Date: Tue, 9 Jan 2024 11:29:37 +0200 Subject: [PATCH] Move WellKnownHeaders code to top Small rearrangement to make diff on later variant/union commit more readable Pick-to: 6.7 Task-number: QTBUG-119002 Change-Id: I3f6120b5dcd324b6493072d2eb58209866fb7dc6 Reviewed-by: Marc Mutz --- src/network/access/qhttpheaders.cpp | 70 ++++++++++++++--------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/src/network/access/qhttpheaders.cpp b/src/network/access/qhttpheaders.cpp index c2c00c3cfd..b6b322eb08 100644 --- a/src/network/access/qhttpheaders.cpp +++ b/src/network/access/qhttpheaders.cpp @@ -69,41 +69,6 @@ Q_LOGGING_CATEGORY(lcQHttpHeaders, "qt.network.http.headers"); the values. */ -// A clarification on case-sensitivity: -// - Header *names* are case-insensitive; Content-Type and content-type are considered equal -// - Header *values* are case-sensitive -// (In addition, the HTTP/2 and HTTP/3 standards mandate that all headers must be lower-cased when -// encoded into transmission) -struct Header { - QByteArray name; - QByteArray value; - -private: - friend bool operator==(const Header &lhs, const Header &rhs) noexcept - { - return lhs.value == rhs.value && lhs.name == rhs.name; - } -}; - -class QHttpHeadersPrivate : public QSharedData -{ -public: - QHttpHeadersPrivate() = default; - - QList
headers; -}; - -QT_DEFINE_QESDP_SPECIALIZATION_DTOR(QHttpHeadersPrivate) -template <> void QExplicitlySharedDataPointer::detach() -{ - if (!d) { - d = new QHttpHeadersPrivate(); - d->ref.ref(); - } else if (d->ref.loadRelaxed() != 1) { - detach_helper(); - } -} - // This list is from IANA HTTP Field Name Registry // https://www.iana.org/assignments/http-fields // It contains entries that are either "permanent" @@ -478,6 +443,41 @@ static constexpr auto headerNames = qOffsetStringArray( \value ProtocolQuery */ +// A clarification on case-sensitivity: +// - Header *names* are case-insensitive; Content-Type and content-type are considered equal +// - Header *values* are case-sensitive +// (In addition, the HTTP/2 and HTTP/3 standards mandate that all headers must be lower-cased when +// encoded into transmission) +struct Header { + QByteArray name; + QByteArray value; + +private: + friend bool operator==(const Header &lhs, const Header &rhs) noexcept + { + return lhs.value == rhs.value && lhs.name == rhs.name; + } +}; + +class QHttpHeadersPrivate : public QSharedData +{ +public: + QHttpHeadersPrivate() = default; + + QList
headers; +}; + +QT_DEFINE_QESDP_SPECIALIZATION_DTOR(QHttpHeadersPrivate) +template <> void QExplicitlySharedDataPointer::detach() +{ + if (!d) { + d = new QHttpHeadersPrivate(); + d->ref.ref(); + } else if (d->ref.loadRelaxed() != 1) { + detach_helper(); + } +} + /*! Creates a new QHttpHeaders object. */