diff options
Diffstat (limited to 'src/network/doc/src')
-rw-r--r-- | src/network/doc/src/dontdocument.qdoc | 28 | ||||
-rw-r--r-- | src/network/doc/src/examples.qdoc | 36 | ||||
-rw-r--r-- | src/network/doc/src/external-resources.qdoc | 28 | ||||
-rw-r--r-- | src/network/doc/src/network-programming.qdoc | 28 | ||||
-rw-r--r-- | src/network/doc/src/qt6-changes.qdoc | 64 | ||||
-rw-r--r-- | src/network/doc/src/qtnetwork.qdoc | 51 | ||||
-rw-r--r-- | src/network/doc/src/ssl.qdoc | 78 |
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 |