summaryrefslogtreecommitdiffstats
path: root/src/network/access/qnetworkcookie.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove unused header qnetworkrequest.h from qnetworkcookie.cppMate Barany4 days1-1/+0
| | | | | | Pick-to: 6.11 Change-Id: Ie845fb7680ab102267575ad34f74645e974f453f Reviewed-by: Mårten Nordheim <[email protected]>
* Mark some security sensitive files in networkDimitrios Apostolou2024-12-021-0/+1
| | | | | | | | Following acceptance of QUIP-23. Done-with: Mårten Nordheim <[email protected]> Change-Id: I0d5c816d6e3c2d25b2c6ad5384aba1f533ce0288 Reviewed-by: Mårten Nordheim <[email protected]>
* Create qdoc macros for C++ class docs 1.2: member-swap(), simplified phrasingMarc Mutz2024-11-081-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have some patterns for how to document certain functions, but we also vary the sentences a lot, and you have to look up one documentation piece and copy it, essentially. If we ever want to change them, we end up with shotgun surgery. So apply DRY to the documentation and start a collection of macros to help with repetitive C++ class documentation tasks. The first macro is for member-swap(), and this second patch is for documentation that used the simplified phrasing ("Swaps this X with \a other."), which this patch adopts as the text for \memberswap, too, because it doesn't repeat the macro argument, making it easier to find a grammatically-fitting argument than in the traditional phrasing. This doesn't change the documentation, except as follows: * standardizes on simpified instead of traditional phrasing for docs that already use the \memberswap macro * adds the "very fast and never fails" blurb, if it was missing * changes the function's argument name to `other`, as required by the macro. Task-number: QTBUG-129573 Pick-to: 6.8 6.7 6.5 6.2 Change-Id: I1123e783ce0da76c5997ff74007d77504ac5b334 Reviewed-by: Topi Reiniö <[email protected]> Reviewed-by: Ivan Solovev <[email protected]>
* Replace all QPair/qMakePair with std::pair in qtbase/networkIsak Fyksen2024-10-241-4/+6
| | | | | | | Task-number: QTBUG-115841 Change-Id: I34f3106e4b50a18cc19c4cda597205c346e7561e Reviewed-by: Mårten Nordheim <[email protected]> Reviewed-by: Øystein Heskestad <[email protected]>
* qnetworkcookie: remove parseCookiesAnton Kudryavtsev2023-11-021-9/+1
| | | | | | | that takes QBA in favor of QBAV version Change-Id: I56bbe5cc5c7fa3e31e6b6e71d97211de3eb1ab26 Reviewed-by: Mårten Nordheim <[email protected]>
* network: use CIS compare moreAnton Kudryavtsev2023-11-011-8/+7
| | | | | | | to reduce allocations Change-Id: I648518fd152a834bbdc6afcedb693f02c1b13af1 Reviewed-by: Mårten Nordheim <[email protected]>
* qnetworkcookie: reduce allocationsAnton Kudryavtsev2023-09-041-10/+14
| | | | | | | | | Use CaseInsensitive compare more. While touching code, replcace QBA literal with QBAV Change-Id: Iecd2740c995f1e24b4285440b9440e4745f93208 Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Mårten Nordheim <[email protected]>
* QNetworkCookie: add QBAV overload for parseCookiesAnton Kudryavtsev2023-08-271-3/+11
| | | | | | | Rewrite impl to reduce allocations by QL1S::tokenize Change-Id: I8d131ef6d7fe9a1a9daa438efea026392deb5e55 Reviewed-by: Mårten Nordheim <[email protected]>
* QNetworkCookiePrivate::parseSetCookieHeaderLine: port to QBAVAnton Kudryavtsev2023-08-251-7/+7
| | | | | Change-Id: If777e43d5c24820dfab02bbf49501b09d82cc2a0 Reviewed-by: Mårten Nordheim <[email protected]>
* qnetworkcookie: reduce allocationsAnton Kudryavtsev2023-08-251-7/+7
| | | | | | | by using QBAV::toInt instead of creating temp QBA + atoi Change-Id: I90dd78e3fd989930071e3bd99c914087409aa948 Reviewed-by: Mårten Nordheim <[email protected]>
* qnetworkcookie: replace QString with QL1SAnton Kudryavtsev2023-08-241-2/+2
| | | | | | | to save allocation Change-Id: I7726d2e9d165ec3ebdd4a6dd7dd98bcd16c50bc6 Reviewed-by: Mårten Nordheim <[email protected]>
* Adapt to QTimeZone replacing Qt::TimeSpec usageEdward Welbourne2022-12-101-3/+5
| | | | | | | | | | | | In the process actually handle all time-spec cases in various places that only handled UTC or LocalTime, or at least note that they don't where that's not practical. Also tidy up header ordering and ensure QDateTime's header is included wherever it's used, while adding the include for QTimeZone where needed. Task-number: QTBUG-108199 Change-Id: Ic1a5cdf0aaf737bf1396aa8ac58ce2004cef7e19 Reviewed-by: Mårten Nordheim <[email protected]>
* Port from container.count()/length() to size()Marc Mutz2022-10-041-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is semantic patch using ClangTidyTransformator: auto QtContainerClass = expr(hasType(namedDecl(hasAnyName(<classes>)))).bind(o) makeRule(cxxMemberCallExpr(on(QtContainerClass), callee(cxxMethodDecl(hasAnyName({"count", "length"), parameterCountIs(0))))), changeTo(cat(access(o, cat("size"), "()"))), cat("use 'size()' instead of 'count()/length()'")) a.k.a qt-port-to-std-compatible-api with config Scope: 'Container'. <classes> are: // sequential: "QByteArray", "QList", "QQueue", "QStack", "QString", "QVarLengthArray", "QVector", // associative: "QHash", "QMultiHash", "QMap", "QMultiMap", "QSet", // Qt has no QMultiSet Change-Id: Ibe8837be96e8d30d1846881ecd65180c1bc459af Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Volker Hilsheimer <[email protected]>
* Use SPDX license identifiersLucie Gérard2022-05-161-38/+2
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Lars Knoll <[email protected]> Reviewed-by: Jörg Bornemann <[email protected]>
* QtNetwork: includemocsMarc Mutz2022-04-281-0/+2
| | | | | | | | | | | Including moc files directly into their classes' TU tends to improve codegen and enables extended compiler warnings, e.g. about unused private functions or fields. Pick-to: 6.3 6.2 5.15 Task-number: QTBUG-102886 Change-Id: Ie027419956d98c971429f2b4c7ae6f8f56c094f6 Reviewed-by: Thiago Macieira <[email protected]>
* QtNetwork: use _L1 for for creating Latin-1 string literalsSona Kurazyan2022-04-211-2/+2
| | | | | | Task-number: QTBUG-98434 Change-Id: Ic235b92377203f7a1429ae7fd784c4a1fa893e9f Reviewed-by: Mårten Nordheim <[email protected]>
* QtNetwork: stop using QLatin1Char constructor for creating char literalsSona Kurazyan2022-04-211-6/+6
| | | | | | | | | | | Required for porting away from QLatin1Char/QLatin1String in scope of QTBUG-98434. As a drive-by, fix qsizetype -> int narrowing conversion warnings for the touched lines. Change-Id: I121f87214b77aeab1dfd3e62dc5adaa6255cc0e0 Reviewed-by: Mårten Nordheim <[email protected]>
* Replace uses of _qs with _s in sources and examplesSona Kurazyan2022-04-191-1/+3
| | | | | | Task-number: QTBUG-101408 Change-Id: I48360ba3b23965cd3d90ac243c100a0656a4cde8 Reviewed-by: Marc Mutz <[email protected]>
* QtNetwork: sweep Q_DECLARE_METATYPE → QT_DECL_METATYPE_EXTERN [1/2]: ↵Marc Mutz2022-04-051-0/+2
| | | | | | | | | | | | | | public API It's one of our best tools to improve compile times. Can't backport to Qt 6.3 or 6.2 because this change introduces new exported symbols. Task-number: QTBUG-102206 Change-Id: I6bfa532be34ca847d3b9034d16c94efed3d602c3 Reviewed-by: Mårten Nordheim <[email protected]> Reviewed-by: Qt CI Bot <[email protected]>
* QNetworkCookie: Clean upMårten Nordheim2021-08-271-8/+8
| | | | | | | | | | | | | Rewrite the regex to not capture the things we ignore anyway. Use capturedView to avoid allocating a string just to turn it into an int. Fix a (usually) ifdef-ed out piece of code that was still calling a QRegExp function. Make the QRegularExpression static const to save it from having to recompile every time. Change-Id: I2f4841a2bc35df4e6cea44aec72432410583f770 Reviewed-by: Edward Welbourne <[email protected]>
* QNetworkCookie: Fix use-after-freeMårten Nordheim2021-08-261-3/+4
| | | | | | | | | | | | The code was previously calling indexOf() on a temporary, which QRegularExpression would create backing storage for. After 11d1dcc6e263c5059f34b44d531c9ccdf7c0b1d6 the internals were made to use the QStringView path, which inadvertently meant that there was no storage for the temporary string anymore. So we need to keep it alive ourselves. Change-Id: I542da7010934594eba3b93261322963866ed9297 Reviewed-by: Edward Welbourne <[email protected]>
* QNetworkCookie: Rename sameSite to sameSitePolicyMårten Nordheim2021-04-141-6/+6
| | | | | | | | | As suggested in the API review. Amends 37bd7b5733c7f1a4eb6ac5458fdc46f94a91194a Pick-to: 6.1 6.1.0 Change-Id: Ic3e8567f349568dc3b4dbf79be27c304b39480cf Reviewed-by: Volker Hilsheimer <[email protected]>
* Add SameSite API to QNetworkCookieAllan Sandfeld Jensen2020-12-071-3/+69
| | | | | Change-Id: I3f8b25418154f74bb55fa978b03465f75771d015 Reviewed-by: Mårten Nordheim <[email protected]>
* Pass SameSite through QNetworkCookieAllan Sandfeld Jensen2020-10-281-1/+8
| | | | | | | | | It is an important new details in cookies, as a minimum pass it through, before we add API for it. Pick-to: 5.15 Change-Id: I5222a24e0f50f3822a94cce126b5055fed1a8008 Reviewed-by: Mårten Nordheim <[email protected]>
* Remove QRegExp usage in QNetworkCookieLars Knoll2020-04-011-11/+13
| | | | | | | | | | | Changed this to not use capturedTexts(), as it is slower than required, and behaves slightly differently than in QRegExp (the returned list might be shorter than the amount of captures if the last capture didn't match). Change-Id: I3f90128af62d784a3d1beb993ab215e0c7d6b826 Reviewed-by: Mårten Nordheim <[email protected]>
* Tidy nullptr usageAllan Sandfeld Jensen2019-12-061-1/+1
| | | | | | | | | | | Move away from using 0 as pointer literal. Done using clang-tidy. This is not complete as run-clang-tidy can't handle all of qtbase in one go. Change-Id: I1076a21f32aac0dab078af6f175f7508145eece0 Reviewed-by: Friedemann Kleint <[email protected]> Reviewed-by: Lars Knoll <[email protected]>
* QRegExp include cleanupSamuel Gaist2019-04-191-0/+1
| | | | | | | | | | | | | | | | QRegExp includes can be found in several files where there's not even a use of the class. This patch aims to avoid needless includes as well as follow the "include only what you use" moto. This patch removes a QRegExp include from the QStringList header which means that there is likely going to be code breaking since QStringList is used in many places and would get QRegExp in. [ChangeLog][Potentially Source-Incompatible Changes] qstringlist.h no longer includes qregexp.h. Change-Id: I32847532f16e419d4cb735ddc11a26551127e923 Reviewed-by: Thiago Macieira <[email protected]>
* Support C++17 fallthrough attributeAllan Sandfeld Jensen2016-08-191-1/+1
| | | | | | | | | Replaces our mix of comments for annotating intended absence of break in switches with the C++17 attribute [[fallthrough]], or its earlier a clang extension counterpart. Change-Id: I4b2d0b9b5e4425819c7f1bf01608093c536b6d14 Reviewed-by: Thiago Macieira <[email protected]>
* Fix/adapt the uses of {to,set,from}Time_t in the qtbase source codeThiago Macieira2016-07-061-1/+1
| | | | | | | | | Move those to the equivalent {to,set,from}SecsSinceEpoch(), except for the cases that did QDateTime::currentDateTime{,Utc}().toTime_t. Those are best implemented with QDateTime::currentSecsSinceEpoch(). Change-Id: Ib57b52598e2f452985e9fffd145a366c92cfda20 Reviewed-by: Edward Welbourne <[email protected]>
* Updated license headersJani Heikkinen2016-01-151-14/+20
| | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9 Reviewed-by: Lars Knoll <[email protected]>
* Convert some QDateTime::currentDateTime() to currentDateTimeUtc() (I)Marc Mutz2015-10-231-1/+1
| | | | | | | | | | | | | | | The latter is much faster as it doesn't have to deal with time zones. This change handles the trivial ones: Either the call to currentDateTime() is immediately followed by a call to toUTC() or toTime_t(). The latter is much faster on UTC QDateTimes, too. Credits to Milian Wolff, from whose QtWS15 talk this advice is taken. Change-Id: I872f5bbb26cbecedc1e5c0dbee4d5ac2c6eb67ee Reviewed-by: Milian Wolff <[email protected]>
* Make data tables const.Volker Krause2015-05-051-1/+1
| | | | | | | | | | Moves some of them to the .rodata section, the rest at least to .data.rel.ro[.local]. Change-Id: I85676ddf22b0c0097f3f0dce4c3dc018dc29d045 Reviewed-by: Marc Mutz <[email protected]> Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Giuseppe D'Angelo <[email protected]>
* Network: Fix operator<<(QDebug, ...) operationsKai Koehne2015-02-121-2/+4
| | | | | | | | | | | | Use the QDebugStateSaver saver(debug); debug.resetFormat().nospace(); idiom to unify the formatting and whitespace handling. Change-Id: Id346d63b3f589b60ca19e4459271d587f1a0c003 Reviewed-by: Richard J. Moore <[email protected]>
* Update copyright headersJani Heikkinen2015-02-111-7/+7
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <[email protected]>
* Change bugreports.qt-project.org -> bugreports.qt.ioAlex Blasche2014-12-181-1/+1
| | | | | | | The Qt bug tracker URL changes as part of the qt.io transition Change-Id: Icb4ab198943b93639b5e3a8d99262303785c6459 Reviewed-by: Kai Koehne <[email protected]>
* Update license headers and add new license filesMatti Paaso2014-09-241-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <[email protected]>
* QNetworkCookie: allow cookies for IPv6 domainsPeter Hartmann2013-12-131-4/+12
| | | | | | | | | | | | | | For IPv6 addresses don't call toAce as it returns the empty string. We should reflect the behavior of browsers here, which all accept cookies from IPv6 addresses. Original-patch-by: David Tapuska <[email protected]> Task-number: QTBUG-35022 Change-Id: Ic00369e923d044ec459822b2405865c13e4185b6 Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Richard J. Moore <[email protected]>
* QNetworkCookie: allow cookies for IPv4 domainsPeter Hartmann2013-12-131-7/+13
| | | | | | | | | | | If the domain is an IP address, we should not do any magic regarding leading dots etc. Task-number: QTBUG-35022 Change-Id: I7722de4e6027666dde27e9e37b6353e3da775d94 Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Richard J. Moore <[email protected]>
* Doc: Adding mark-up to boolean default values.Jerome Pasion2013-10-081-7/+7
| | | | | | | | | | | | | | | | | Default values should have mark-up to denote that they are code. This commit changes: -"property is true" to "property is \c true". -"Returns true" to "Returns \c true". -"property is false" to "property is \c false". -"returns true" to "returns \c true". -"returns false" to "returns \c false". src/3rdparty and non-documentation instances were ignored. Task-number: QTBUG-33360 Change-Id: Ie87eaa57af947caa1230602b61c5c46292a4cf4e Reviewed-by: Oswald Buddenhagen <[email protected]> Reviewed-by: Jerome Pasion <[email protected]>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <[email protected]>
* Entered hardcoded urls QTBUG-28500Nico Vertriest2012-12-111-2/+2
| | | | | | | | Hardcoded urls for rfc 2109 and 2965 Corrected in qnetworkcookie.cpp Change-Id: Id3668fec24c3c658437f22a977ea9e631a423aed Reviewed-by: Jerome Pasion <[email protected]>
* Add more qtbase implictly-shared classes to the listGiuseppe D'Angelo2012-11-301-0/+1
| | | | | | | QText*Format and QDns* ones are still missing. Change-Id: I8e87fba596e87289ca935717e0a90bfc0b0a26c0 Reviewed-by: hjk <[email protected]>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <[email protected]> Reviewed-by: Sergio Ahumada <[email protected]>
* QtNetwork: add member-swap to shared classesMarc Mutz2012-07-061-0/+8
| | | | | | | | Implemented as in other shared classes (e.g. QPen). Change-Id: Ib3d87ff99603e617cc8810489f9f5e9fe054cd2a Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Shane Kearns <[email protected]>
* QNetworkCookie - ignore unparsable expires attributeShane Kearns2012-06-271-4/+3
| | | | | | | | | | As required by RFC6265, if the date can't be parsed then the attribute should be ignored but not the whole cookie. Task-number: QTBUG-15794 Task-number: QTBUG-16798 Change-Id: I2ed2fbbaf2d00b194995349c24b174032a599703 Reviewed-by: Richard J. Moore <[email protected]>
* Ignore empty domain attribute in cookiesShane Kearns2012-06-271-9/+18
| | | | | | | | | As recommended by RFC6265. This fixes the optional-domain0042 test case. Task-number: QTBUG-15794 Change-Id: I6dd459797afcb52fa2a78437f8481f5abc6f3105 Reviewed-by: Richard J. Moore <[email protected]>
* Use RFC6265 rules for cookie path & path matchingShane Kearns2012-06-271-3/+10
| | | | | | | | | | | | | | | Url encoding of paths is no longer used. This matches the current release behaviour of Firefox, Chrome and MSIE browsers. RFC6265 does not allow this type of encoding. This fixes remaining path test cases in the IETF test suite. Currently the path0027 test is passed by Firefox but failed by Chrome and MSIE, so there is a potential compatibility issue. However it is a corner case with a malformed cookie. Task-number: QTBUG-15794 Change-Id: I9b02bb5adc32d614f512d314d06f2c60894aa2b0 Reviewed-by: Richard J. Moore <[email protected]>
* QNetworkCookie: Use RFC6265 rules for parsing Set-CookieShane Kearns2012-06-271-87/+16
| | | | | | | | | | | | | | The ';' separator takes priority even inside a quoted string. Quotation marks have no special meaning, they are not parsed and regenerated anymore. This means it is not possible to include the ';' character inside a cookie value. Other characters are returned transparently, including [",\] Task-number: QTBUG-15794 Task-number: QTBUG-26002 Task-number: QTBUG-11641 Change-Id: I4eefef5c6ac7753d5a21c226169e264578521fe9 Reviewed-by: Richard J. Moore <[email protected]>
* QNetworkCookie - use RFC6265 rules for max-ageShane Kearns2012-06-271-3/+9
| | | | | | | | | | | | | | | | If unparsable, ignore the max-age attribute but process the rest of the cookie normally. If max age <= 0, set expiration time to "earliest representable time" To keep this a safe value for conversions, time_t of 0 is used. This fixes cases 0019 and comma0005 in the test suite. Due to this change, cookies may be sent after they should have expired in case the max-age was malformed. Previously they would have been discarded immediately, which is more likely to break web services. Task-number: QTBUG-15794 Change-Id: I7882af8eb37db156785e4e358ca639e90c94f8d0 Reviewed-by: Richard J. Moore <[email protected]>
* QNetworkCookie - ignore unknown attributesShane Kearns2012-06-271-9/+1
| | | | | | | | | | | | RFC6265 clarifies that unknown cookie attributes should be ignored, including the version attribute which was defined by RFC2109 but not used correctly in practice. This fixes case 0008 in the test suite with minimal risk. Task-number: QTBUG-15794 Change-Id: I6f15e8e5e2e5f1ed168fc733a5c84d606a452252 Reviewed-by: Richard J. Moore <[email protected]>