summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-03-14 10:49:20 +0100
committerLiang Qi <liang.qi@qt.io>2017-03-14 10:52:24 +0100
commit0c034a649f61019c16aba479fe79d20dde41f2f2 (patch)
tree54545862591044b65e618989805945bceb0b3ea5 /src/network
parent2162f01111d21d0ce66ceb8be290b0a13653e691 (diff)
parentdf40b1115db600e8de1c4774476fa30956a34fd9 (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.cpp6
-rw-r--r--src/network/access/qhstspolicy.cpp14
-rw-r--r--src/network/access/qhstspolicy.h11
-rw-r--r--src/network/doc/snippets/code/src_network_socket_qsctpsocket.cpp12
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