diff options
| -rw-r--r-- | src/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/client/QXmppClient.cpp | 2 | ||||
| -rw-r--r-- | src/client/QXmppTlsManager.cpp | 15 | ||||
| -rw-r--r-- | src/client/QXmppTlsManager_p.h (renamed from src/client/QXmppTlsManager.h) | 19 |
4 files changed, 27 insertions, 10 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 11d7f535..3f46c666 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -77,7 +77,6 @@ set(INSTALL_HEADER_FILES client/QXmppRemoteMethod.h client/QXmppRosterManager.h client/QXmppRpcManager.h - client/QXmppTlsManager.h client/QXmppTransferManager.h client/QXmppTransferManager_p.h client/QXmppUploadRequestManager.h diff --git a/src/client/QXmppClient.cpp b/src/client/QXmppClient.cpp index 7763676b..5fb1b869 100644 --- a/src/client/QXmppClient.cpp +++ b/src/client/QXmppClient.cpp @@ -33,7 +33,7 @@ #include "QXmppMessage.h" #include "QXmppUtils.h" -#include "QXmppTlsManager.h" +#include "QXmppTlsManager_p.h" #include "QXmppRosterManager.h" #include "QXmppVCardManager.h" #include "QXmppVersionManager.h" diff --git a/src/client/QXmppTlsManager.cpp b/src/client/QXmppTlsManager.cpp index 061a3cba..683d6ec2 100644 --- a/src/client/QXmppTlsManager.cpp +++ b/src/client/QXmppTlsManager.cpp @@ -21,27 +21,31 @@ * */ -#include "QXmppTlsManager.h" +#include "QXmppTlsManager_p.h" #include "QXmppConstants_p.h" #include "QXmppClient.h" +#include "QXmppClient_p.h" +#include "QXmppOutgoingClient.h" #include "QXmppStreamFeatures.h" #include "QXmppStartTlsPacket.h" #include <QDomElement> +#include <QSslSocket> +/// \cond QXmppTlsManager::QXmppTlsManager() = default; bool QXmppTlsManager::handleStanza(const QDomElement &stanza) { - if (QXmppStreamFeatures::isStreamFeatures(stanza) && !client()->isSocketEncrypted()) { + if (QXmppStreamFeatures::isStreamFeatures(stanza) && !clientStream()->socket()->isEncrypted()) { QXmppStreamFeatures features; features.parse(stanza); // determine TLS mode to use const QXmppConfiguration::StreamSecurityMode localSecurity = client()->configuration().streamSecurityMode(); const QXmppStreamFeatures::Mode remoteSecurity = features.tlsMode(); - if (!client()->socketSupportsSsl() && + if (!clientStream()->socket()->supportsSsl() && (localSecurity == QXmppConfiguration::TLSRequired || remoteSecurity == QXmppStreamFeatures::Required)) { warning("Disconnecting since TLS is required, but SSL support is not available"); @@ -55,7 +59,7 @@ bool QXmppTlsManager::handleStanza(const QDomElement &stanza) return true; } - if (client()->socketSupportsSsl() && + if (clientStream()->socket()->supportsSsl() && localSecurity != QXmppConfiguration::TLSDisabled && remoteSecurity != QXmppStreamFeatures::Disabled) { // enable TLS since it is supported by both parties @@ -66,9 +70,10 @@ bool QXmppTlsManager::handleStanza(const QDomElement &stanza) if (QXmppStartTlsPacket::isStartTlsPacket(stanza, QXmppStartTlsPacket::Proceed)) { debug("Starting encryption"); - client()->startSocketEncryption(); + clientStream()->socket()->startClientEncryption(); return true; } return false; } +/// \endcond diff --git a/src/client/QXmppTlsManager.h b/src/client/QXmppTlsManager_p.h index 086bfdf7..562ac273 100644 --- a/src/client/QXmppTlsManager.h +++ b/src/client/QXmppTlsManager_p.h @@ -21,18 +21,31 @@ * */ +// +// W A R N I N G +// ------------- +// +// This file is not part of the QXmpp API. +// +// This header file may change from version to version without notice, +// or even be removed. +// +// We mean it. +// + #ifndef QXMPPTLSMANAGER_H #define QXMPPTLSMANAGER_H -#include "QXmppClientExtension.h" +#include "QXmppInternalClientExtension_p.h" +/// /// \brief The QXmppTlsManager enables the QXmppClient to use STARTTLS. It is /// added to the client by default and can be configured using the /// \c QXmppConfiguration class. /// /// \ingroup Managers - -class QXMPP_EXPORT QXmppTlsManager : public QXmppClientExtension +/// +class QXmppTlsManager : public QXmppInternalClientExtension { Q_OBJECT |
