diff options
Diffstat (limited to 'src/client/QXmppTlsManager.cpp')
| -rw-r--r-- | src/client/QXmppTlsManager.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
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 |
