diff options
author | Liang Qi <liang.qi@qt.io> | 2017-03-14 10:49:20 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-03-14 10:52:24 +0100 |
commit | 0c034a649f61019c16aba479fe79d20dde41f2f2 (patch) | |
tree | 54545862591044b65e618989805945bceb0b3ea5 /src/network | |
parent | 2162f01111d21d0ce66ceb8be290b0a13653e691 (diff) | |
parent | df40b1115db600e8de1c4774476fa30956a34fd9 (diff) |
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts:
src/widgets/widgets/qpushbutton.cpp
Change-Id: I615de00e6e64540c50f658d4d8ab3e002d701a81
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/access/qhsts.cpp | 6 | ||||
-rw-r--r-- | src/network/access/qhstspolicy.cpp | 14 | ||||
-rw-r--r-- | src/network/access/qhstspolicy.h | 11 | ||||
-rw-r--r-- | src/network/doc/snippets/code/src_network_socket_qsctpsocket.cpp | 12 |
4 files changed, 36 insertions, 7 deletions
diff --git a/src/network/access/qhsts.cpp b/src/network/access/qhsts.cpp index 3581fbc796..ca9f3b977b 100644 --- a/src/network/access/qhsts.cpp +++ b/src/network/access/qhsts.cpp @@ -110,7 +110,11 @@ void QHstsCache::updateKnownHost(const QString &host, const QDateTime &expires, // IDNA 2003 (RFC3490) for us, as required by HSTS (RFC6797, section 10). const HostName hostName(host); const auto pos = knownHosts.find(hostName); - const QHstsPolicy newPolicy(expires, includeSubDomains, hostName.name); + QHstsPolicy::PolicyFlags flags; + if (includeSubDomains) + flags = QHstsPolicy::IncludeSubDomains; + + const QHstsPolicy newPolicy(expires, flags, hostName.name); if (pos == knownHosts.end()) { // A new, previously unknown host. if (newPolicy.isExpired()) { diff --git a/src/network/access/qhstspolicy.cpp b/src/network/access/qhstspolicy.cpp index 634bf4784b..0ea9f3f046 100644 --- a/src/network/access/qhstspolicy.cpp +++ b/src/network/access/qhstspolicy.cpp @@ -63,6 +63,14 @@ QT_BEGIN_NAMESPACE \sa QNetworkAccessManager::setStrictTransportSecurityEnabled() */ +/* + \enum QHstsPolicy::PolicyFlag + + Specifies attributes that a policy can have. + + \value IncludeSubDomains HSTS policy also applies to subdomains. +*/ + class QHstsPolicyPrivate : public QSharedData { public: @@ -101,13 +109,13 @@ QHstsPolicy::QHstsPolicy() : d(new QHstsPolicyPrivate) \sa QUrl::setHost(), QUrl::ParsingMode */ -QHstsPolicy::QHstsPolicy(const QDateTime &expiry, bool includeSubDomains, const QString &host, - QUrl::ParsingMode mode) +QHstsPolicy::QHstsPolicy(const QDateTime &expiry, PolicyFlags flags, + const QString &host, QUrl::ParsingMode mode) : d(new QHstsPolicyPrivate) { d->url.setHost(host, mode); d->expiry = expiry; - d->includeSubDomains = includeSubDomains; + d->includeSubDomains = flags.testFlag(IncludeSubDomains); } /*! diff --git a/src/network/access/qhstspolicy.h b/src/network/access/qhstspolicy.h index 45fa40dfe8..176a8fa635 100644 --- a/src/network/access/qhstspolicy.h +++ b/src/network/access/qhstspolicy.h @@ -43,6 +43,7 @@ #include <QtNetwork/qtnetworkglobal.h> #include <QtCore/qshareddata.h> +#include <QtCore/qflags.h> #include <QtCore/qurl.h> QT_BEGIN_NAMESPACE @@ -53,10 +54,15 @@ class QString; class Q_NETWORK_EXPORT QHstsPolicy { public: + enum PolicyFlag + { + IncludeSubDomains = 1 + }; + Q_DECLARE_FLAGS(PolicyFlags, PolicyFlag) QHstsPolicy(); - explicit QHstsPolicy(const QDateTime &expiry, bool includeSubDomains, const QString &host, - QUrl::ParsingMode mode = QUrl::DecodedMode); + QHstsPolicy(const QDateTime &expiry, PolicyFlags flags, const QString &host, + QUrl::ParsingMode mode = QUrl::DecodedMode); QHstsPolicy(const QHstsPolicy &rhs); QHstsPolicy &operator=(const QHstsPolicy &rhs); QHstsPolicy &operator=(QHstsPolicy &&other) Q_DECL_NOTHROW { swap(other); return *this; } @@ -81,6 +87,7 @@ private: }; Q_DECLARE_SHARED(QHstsPolicy) +Q_DECLARE_OPERATORS_FOR_FLAGS(QHstsPolicy::PolicyFlags) Q_NETWORK_EXPORT bool operator==(const QHstsPolicy &lhs, const QHstsPolicy &rhs); diff --git a/src/network/doc/snippets/code/src_network_socket_qsctpsocket.cpp b/src/network/doc/snippets/code/src_network_socket_qsctpsocket.cpp index 378022d655..ac181f950c 100644 --- a/src/network/doc/snippets/code/src_network_socket_qsctpsocket.cpp +++ b/src/network/doc/snippets/code/src_network_socket_qsctpsocket.cpp @@ -6,7 +6,17 @@ ** This file is part of the documentation of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are |