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 | 37 | ||||
-rw-r--r-- | src/network/doc/src/external-resources.qdoc | 28 | ||||
-rw-r--r-- | src/network/doc/src/network-programming.qdoc | 32 | ||||
-rw-r--r-- | src/network/doc/src/qt6-changes.qdoc | 185 | ||||
-rw-r--r-- | src/network/doc/src/qtnetwork.qdoc | 70 | ||||
-rw-r--r-- | src/network/doc/src/ssl.qdoc | 91 |
7 files changed, 272 insertions, 199 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 3d31e04989..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,19 +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/qftp}{FTP}\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 96bbd8d38b..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 @@ -51,7 +27,7 @@ The \l{Qt Network C++ Classes} page contains a list of the C++ classes in Qt Network. - \section1 High Level Network Operations for HTTP and FTP + \section1 High Level Network Operations for HTTP The Network Access API is a collection of classes for performing common network operations. The API provides an abstraction layer @@ -64,7 +40,7 @@ with a request, such as any header information and the encryption used. The URL specified when a request object is constructed determines the protocol used for a request. - Currently HTTP, FTP and local file URLs are supported for uploading + Currently HTTP and local file URLs are supported for uploading and downloading. The coordination of network operations is performed by the diff --git a/src/network/doc/src/qt6-changes.qdoc b/src/network/doc/src/qt6-changes.qdoc new file mode 100644 index 0000000000..3adce84760 --- /dev/null +++ b/src/network/doc/src/qt6-changes.qdoc @@ -0,0 +1,185 @@ +// 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 + \title Changes to Qt Network + \ingroup changes-qt-5-to-6 + \brief Migrate Qt Network to Qt 6. + + Qt 6 is a result of the conscious effort to make the framework more + efficient and easy to use. + + We try to maintain binary and source compatibility for all the public + APIs in each release. But some changes were inevitable in an effort to + make Qt a better framework. + + In this topic we summarize those changes in Qt Network, and provide + guidance to handle them. + + \section1 API changes + + \section2 Ambiguous name overloads + + 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: + + \code + connect(socket, qOverload<QAbstractSocket::SocketError>(&QAbstractSocket::error), + this, &SomeClass::errorSlot); + \endcode + + must therefore be changed to: + + \code + connect(socket, &QAbstractSocket::errorOccurred, this, &SomeClass::errorSlot); + \endcode + + In QSslSocket, the function that returns a list of errors encountered + during the TLS handshake: + + \code + QList<QSslError> sslErrors() const; + \endcode + + is renamed to sslHandshakeErrors(): + + \code + const auto tlsErrors = socket.sslHandshakeErrors(); + \endcode + + \section2 Bearer management is removed + + The classes QNetworkConfiguration and QNetworkConfigurationManager are removed in Qt 6. + Consequently, the following member functions of QNetworkAccessManager are also removed: + + \code + void setConfiguration(const QNetworkConfiguration &config); + QNetworkConfiguration configuration() const; + QNetworkConfiguration activeConfiguration() const; + void setNetworkAccessible(NetworkAccessibility accessible); + NetworkAccessibility networkAccessible() const; + void networkSessionConnected(); + \endcode + + 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 + + Several enumerators are removed in QtNetwork. This includes constants + for no longer supported protocols and functionality: + + \list + \li QSsl::SslV2; + \li QSsl::SslV3; + \li QSsl::TlsV1SslV3; + \li QNetworkRequest::SpdyAllowedAttribute; + \li QNetworkRequest::SpdyWasUsedAttribute; + \li QNetworkAccessManager::UnknownAccessibility; + \li QNetworkAccessManager::NotAccessible; + \li QNetworkAccessManager::Accessible + \endlist + + and enumerators whose names did not follow proper naming conventions: + + \list + \li QSsl::TlsV1 (QSsl::TlsV1_0 is the proper name); + \li QNetworkRequest::HTTP2AllowedAttribute (use QNetworkRequest::Http2AllowedAttribute); + \li QNetworkRequest::HTTP2WasUsedAttribute (use QNetworkRequest::Http2WasUsedAttribute). + \endlist + + QNetworkRequest::FollowRedirectsAttribute is removed in Qt 6, see + \l {Redirect policies}{the section about redirects handling} below. + + \section2 Configuring QSslSocket + + The following deprecated functions are removed in Qt 6: + + \code + QList<QSslCipher> ciphers() const; + void setCiphers(const QList<QSslCipher> &ciphers); + void setCiphers(const QString &ciphers); + static void setDefaultCiphers(const QList<QSslCipher> &ciphers); + static QList<QSslCipher> defaultCiphers(); + static QList<QSslCipher> supportedCiphers(); + QList<QSslCipher> ciphers() const; + void setCiphers(const QList<QSslCipher> &ciphers); + void setCiphers(const QString &ciphers); + static void setDefaultCiphers(const QList<QSslCipher> &ciphers); + static QList<QSslCipher> defaultCiphers(); + static QList<QSslCipher> supportedCiphers(); + bool addCaCertificates(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, + QRegExp::PatternSyntax syntax = QRegExp::FixedString); + void addCaCertificate(const QSslCertificate &certificate); + void addCaCertificates(const QList<QSslCertificate> &certificates); + void setCaCertificates(const QList<QSslCertificate> &certificates); + QList<QSslCertificate> caCertificates() const; + static bool addDefaultCaCertificates(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, + QRegExp::PatternSyntax syntax = QRegExp::FixedString); + static void addDefaultCaCertificate(const QSslCertificate &certificate); + static void addDefaultCaCertificates(const QList<QSslCertificate> &certificates); + static void setDefaultCaCertificates(const QList<QSslCertificate> &certificates); + static QList<QSslCertificate> defaultCaCertificates(); + static QList<QSslCertificate> systemCaCertificates(); + \endcode + + Use QSslConfiguration and its member functions to set these parameters, e.g.: + + \code + auto sslConfiguration = QSslConfiguration::defaultConfiguration(); + sslConfiguration.setCiphers("ECDHE-ECDSA-AES256-SHA384"); + // Set other parameters here ... + socket.setSslConfiguration(sslConfiguration); + \endcode + + \section1 Changes in QNetworkAccessManager's default behavior + + \section2 Redirect policies + + In Qt 6, the default redirect policy has changed from manual to + QNetworkRequest::NoLessSafeRedirectPolicy. If your application relies + on manual redirect handling (it connects its slot to the QNetworkReply::redirected + signal), you have to explicitly set this policy when creating a request: + + \code + request.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::ManualRedirectPolicy); + \endcode + + \section2 HTTP/2 is enabled by default + + In Qt 6 QNetworkAccessManager enables HTTP/2 protocol by default. Depending on the + scheme ("https" or "http"), QNetworkAccessManager will use the Application Layer + Protocol Negotiation TLS extension or "protocol upgrade" HTTP header to negotiate HTTP/2. + If HTTP/2 cannot be negotiated, the access manager will fall back to using HTTP/1.1. + If your application can only use HTTP/1.1, you have to disable HTTP/2 manually + on a new request: + + \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 e18bcd3148..629c7113db 100644 --- a/src/network/doc/src/qtnetwork.qdoc +++ b/src/network/doc/src/qtnetwork.qdoc @@ -1,57 +1,36 @@ -/**************************************************************************** -** -** 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) 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 - Qt Network 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. + 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 doc/snippets/snippets.pro 0 + \include {module-use.qdocinc} {building_with_qmake} {network} \section1 Articles and Guides These articles contain information about Qt Network setup and about applications with networking capabilities. \list - \li \l{Network Programming with Qt} - Programming applications with networking capabilities - \li \l{Secure Sockets Layer (SSL) Classes} - Classes for secure communication over network sockets + \li \l{Network Programming with Qt} - Programming applications with + networking capabilities + \li \l{Secure Sockets Layer (SSL) Classes} - Classes for secure + communication over network sockets \endlist \section1 API Reference @@ -60,6 +39,10 @@ \li \l{Qt Network C++ Classes}{C++ Classes} \endlist + \section1 Module Evolution + \l{Changes to Qt Network} lists important changes in the module API + and functionality that were done for the Qt 6 series of Qt. + \section1 Licenses and Attributions Qt Network is available under commercial licenses from \l{The Qt Company}. @@ -68,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: @@ -98,6 +87,7 @@ \qtvariable network \brief Provides classes to make network programming easier and portable. - Qt Network provides a set of APIs for programming applications that use - TCP/IP. See the \l{Qt Network} overview for more information. + + The \l{Qt Network} page contains information about how to use the module. + */ diff --git a/src/network/doc/src/ssl.qdoc b/src/network/doc/src/ssl.qdoc index e485a1b393..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,39 +9,64 @@ \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, the build system will - attempt to link with libssl and libcrypt libraries located in the default - location on the developer's system. This location is configurable: - set the \c OPENSSL_LIBS environment variable to contain the linker options - required to link Qt against the installed library. For example, on a Unix/Linux - system: + 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 + locations. You can set the CMake variable OPENSSL_ROOT_DIR to force a + specific location. + For example: \code - OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked + configure -openssl-linked -- -D OPENSSL_ROOT_DIR=<openssl_dir> \endcode 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 @@ -73,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 |