summaryrefslogtreecommitdiffstats
path: root/src/network/doc/src
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/doc/src')
-rw-r--r--src/network/doc/src/dontdocument.qdoc28
-rw-r--r--src/network/doc/src/examples.qdoc36
-rw-r--r--src/network/doc/src/external-resources.qdoc28
-rw-r--r--src/network/doc/src/network-programming.qdoc28
-rw-r--r--src/network/doc/src/qt6-changes.qdoc64
-rw-r--r--src/network/doc/src/qtnetwork.qdoc51
-rw-r--r--src/network/doc/src/ssl.qdoc78
7 files changed, 97 insertions, 216 deletions
diff --git a/src/network/doc/src/dontdocument.qdoc b/src/network/doc/src/dontdocument.qdoc
index fe2e54b34c..eb0f8eb07e 100644
--- a/src/network/doc/src/dontdocument.qdoc
+++ b/src/network/doc/src/dontdocument.qdoc
@@ -1,29 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** 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.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\dontdocument (QTypeInfo QMetaTypeId QIPv6Address)
diff --git a/src/network/doc/src/examples.qdoc b/src/network/doc/src/examples.qdoc
index 8dc598daff..ee9084c74c 100644
--- a/src/network/doc/src/examples.qdoc
+++ b/src/network/doc/src/examples.qdoc
@@ -1,29 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** 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.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\group examples-network
@@ -31,7 +7,7 @@
\title Network Examples
\brief How to do network programming in Qt.
- \image network-examples.png
+ \image network-examples.webp
Qt is provided with an extensive set of network classes to support both
client-based and server side network programming.
@@ -46,18 +22,12 @@
\li \l{network/blockingfortuneclient}{Blocking Fortune Client}\raisedaster
\li \l{network/broadcastreceiver}{Broadcast Receiver}
\li \l{network/broadcastsender}{Broadcast Sender}
- \li \l{network/download}{Download}
- \li \l{network/downloadmanager}{Download Manager}
\li \l{network/network-chat}{Network Chat}
\li \l{network/fortuneclient}{Fortune Client}\raisedaster
\li \l{network/fortuneserver}{Fortune Server}\raisedaster
\li \l{network/http}{HTTP}
- \li \l{network/loopback}{Loopback}
\li \l{network/threadedfortuneserver}{Threaded Fortune Server}\raisedaster
\li \l{network/torrent}{Torrent}
- \li \l{network/googlesuggest}{Google Suggest}
- \li \l{network/bearercloud}{Bearer Cloud}\raisedaster
- \li \l{network/bearermonitor}{Bearer Monitor}
\li \l{network/securesocketclient}{Secure Socket Client}
\li \l{network/multicastreceiver}{Multicast Receiver}
\li \l{network/multicastsender}{Multicast Sender}
diff --git a/src/network/doc/src/external-resources.qdoc b/src/network/doc/src/external-resources.qdoc
index f033ddc729..60680cde0a 100644
--- a/src/network/doc/src/external-resources.qdoc
+++ b/src/network/doc/src/external-resources.qdoc
@@ -1,29 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** 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.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\externalpage https://www.openssl.org/
diff --git a/src/network/doc/src/network-programming.qdoc b/src/network/doc/src/network-programming.qdoc
index 4f2ebf7c54..d301ad01a3 100644
--- a/src/network/doc/src/network-programming.qdoc
+++ b/src/network/doc/src/network-programming.qdoc
@@ -1,29 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** 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.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\group network
diff --git a/src/network/doc/src/qt6-changes.qdoc b/src/network/doc/src/qt6-changes.qdoc
index 024280200a..3adce84760 100644
--- a/src/network/doc/src/qt6-changes.qdoc
+++ b/src/network/doc/src/qt6-changes.qdoc
@@ -1,29 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** 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.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\page network-changes-qt6.html
@@ -43,9 +19,9 @@
\section1 API changes
- \section2 Ambigous name overloads
+ \section2 Ambiguous name overloads
- Several ambigous overloaded functions are removed. The error() signal
+ Several ambiguous overloaded functions are removed. The error() signal
is replaced by errorOccurred() in QAbstractSocket and its heirs
(QTcpSocket, QUdpSocket, QLocalSocket, and QSslSocket), and in QNetworkReply.
Code such as:
@@ -88,8 +64,20 @@
void networkSessionConnected();
\endcode
- \note Qt 6.0 does not provide replacements for these deleted
- classes and functions.
+ QNetworkInformation, initially introduced in Qt 6.1, aims to replace some
+ aspects of the bearer management API. It works by providing a unified API
+ which subscribes to changes to the network as notified by the operating
+ system.
+
+ QNetworkInformation::reachability(), introduced in Qt 6.1, replaces the
+ QNetworkAccessManager::networkAccessible() function, while adding more
+ detailed information about the reachability of the network. See its
+ documentation for more details.
+
+ In Qt 6.2 QNetworkInformation gained the ability to detect captive portals.
+
+ In Qt 6.3 QNetworkInformation gained QNetworkInformation::transportMedium()
+ and QNetworkInformation::isMetered().
\section2 Deleted enumerators
@@ -115,8 +103,8 @@
\li QNetworkRequest::HTTP2WasUsedAttribute (use QNetworkRequest::Http2WasUsedAttribute).
\endlist
- QNetworkRequest::FollowRedirectsAttribute is removed in Qt 6, see the section
- about redirects handling below.
+ QNetworkRequest::FollowRedirectsAttribute is removed in Qt 6, see
+ \l {Redirect policies}{the section about redirects handling} below.
\section2 Configuring QSslSocket
@@ -169,7 +157,7 @@
signal), you have to explicitly set this policy when creating a request:
\code
- request.setAttribute(QNetworkRequest::RedirectPolicy, QNetworkRequest::ManualRedirectPolicy);
+ request.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::ManualRedirectPolicy);
\endcode
\section2 HTTP/2 is enabled by default
@@ -184,4 +172,14 @@
\code
request.setAttribute(QNetworkRequest::Http2AllowedAttribute, false);
\endcode
+
+ \section2 QNetworkAccessManager now guards against archive bombs
+
+ Starting with Qt 6.2 QNetworkAccessManager will guard against compressed
+ files that decompress to files which are much larger than their compressed
+ form by erroring out the reply if the decompression ratio exceeds a certain
+ threshold.
+ This check is only applied to files larger than a certain size, which can be
+ customized (or disabled by passing -1) by calling
+ \l{QNetworkRequest::setDecompressedSafetyCheckThreshold()}.
*/
diff --git a/src/network/doc/src/qtnetwork.qdoc b/src/network/doc/src/qtnetwork.qdoc
index 629e0126e0..629c7113db 100644
--- a/src/network/doc/src/qtnetwork.qdoc
+++ b/src/network/doc/src/qtnetwork.qdoc
@@ -1,49 +1,26 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** 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.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\page qtnetwork-index.html
\title Qt Network
\brief Provides networking capabilities
- The \l{Qt Network} module provides a set of APIs for programming
+ The Qt Network module provides a set of APIs for programming
applications that use TCP/IP. Operations such as requests, cookies, and
sending data over HTTP are handled by various C++ classes.
- \include module-use.qdocinc using qt module
- \snippet doc/snippets/CMakeLists.txt 0
+ \section1 Using the Module
- See also the \l {Build with CMake} overview.
+ \include {module-use.qdocinc} {using the c++ api}
- \section2 Building with qmake
+ \section2 Building with CMake
+
+ \include {module-use.qdocinc} {building with cmake} {Network}
- Add \c network to the \c QT variable:
+ \section2 Building with qmake
- \snippet network/network.pro 0
+ \include {module-use.qdocinc} {building_with_qmake} {network}
\section1 Articles and Guides
@@ -74,7 +51,13 @@
the \l{GNU General Public License, version 2}.
See \l{Qt Licensing} for further details.
- Qt Network can use the \l{OpenSSL Toolkit} as a backend. The library is then
+ Furthermore, Qt Network in Qt \QtVersion may contain third-party
+ modules under the following permissive licenses:
+
+ \generatelist{groupsbymodule attributions-qtnetwork}
+
+ Qt Network can make use of the \l{OpenSSL Toolkit} as a back end.
+ The library is then
linked against OpenSSL in a way that requires compliance with the \l{OpenSSL
License}. To allow linking OpenSSL with Qt Network under the GPL, following
exceptions to the GPL do apply:
diff --git a/src/network/doc/src/ssl.qdoc b/src/network/doc/src/ssl.qdoc
index 5ebcba1ca7..83549f61e8 100644
--- a/src/network/doc/src/ssl.qdoc
+++ b/src/network/doc/src/ssl.qdoc
@@ -1,29 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** 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.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\page ssl.html
@@ -33,24 +9,36 @@
\keyword SSL
The classes below provide support for secure network communication using
- the Secure Sockets Layer (SSL) protocol, using the \l{OpenSSL Toolkit}
- to perform encryption and protocol handling.
+ the Secure Sockets Layer (SSL) protocol, using a native TLS backend,
+ the \l{OpenSSL Toolkit}, or any appropriate TLS plugin to perform encryption
+ and protocol handling.
- From Qt version 5.6 onwards, the officially supported version for OpenSSL
- is 1.0.0 or later.
+ From Qt version 5.15 onward, the officially supported version for OpenSSL
+ is 1.1.1 or later.
+
+ Qt version 5.15.1 onward is also compatible with OpenSSL 3.
\annotatedlist ssl
+ For Android applications see \l{Adding OpenSSL Support for Android}.
+
+ \section1 Enabling and Disabling SSL Support when Building Qt from Source
- \section1 Enabling and Disabling SSL Support
+ When building Qt from source, Qt builds plugins for native TLS libraries
+ that are supported for the operating system you are building for. For
+ Windows this means
+ \l{https://docs.microsoft.com/en-us/windows/win32/com/schannel}{Schannel},
+ while for macOS this is
+ \l{https://developer.apple.com/documentation/security/secure_transport}{Secure Transport}.
- When building Qt from source, the configuration system checks for the presence
- of the \c{openssl/opensslv.h} header provided by source or developer packages
- of OpenSSL.
+ On all platforms, the configuration system checks for the presence of the
+ \c{openssl/opensslv.h} header provided by source or developer packages
+ of OpenSSL. If found, it will enable and build the OpenSSL backend for Qt.
- By default, an SSL-enabled Qt library dynamically loads any installed OpenSSL
- library at run-time. However, it is possible to link against the library at
- compile-time by configuring Qt with the \c{-openssl-linked} option.
+ By default, an OpenSSL-enabled Qt library dynamically loads any installed
+ OpenSSL library at run-time. However, it is possible to link against the
+ library at compile-time by configuring Qt with the \c{-openssl-linked}
+ option.
When building a version of Qt linked against OpenSSL, Qt's build system will
use CMake's \c{FindOpenSSL} command to find OpenSSL in several standard
@@ -65,6 +53,20 @@
To disable SSL support in a Qt build, configure Qt with the \c{-no-openssl}
option.
+ \section1 Considerations While Packaging Your Application
+
+ When you package your application, you may run a tool like \l{windeployqt}. This
+ copies all the plugins for the libraries you use to the \c{plugins/} folder.
+ However, for TLS you only need one backend, and you may delete the other
+ plugins before packaging your application. For example, if you're on Windows
+ and don't require any of the extra features the OpenSSL backend provides,
+ you can choose to forego shipping the \c{qopensslbackend} plugin as well as
+ the OpenSSL library, and simply ship the \c{qschannelbackend} plugin.
+
+ However, shipping multiple backends is not a problem. Qt will
+ attempt to load the backends in order (with OpenSSL attempted first) until
+ one is successfully loaded. The other backends are then unused.
+
\section1 Datagram Transport Layer Security
Datagram Transport Layer Security (DTLS) is a protocol that enables security
@@ -72,7 +74,7 @@
eavesdropping, tampering, or message forgery. The DTLS protocol is based on the
stream-oriented Transport Layer Security (TLS) protocol. QtNetwork enables
the use of DTLS with User Datagram Protocol (UDP), as defined by
- \l {https://tools.ietf.org/html/rfc6347}{RFC 6347}.
+ \l {RFC 6347}.
\section1 Import and Export Restrictions