aboutsummaryrefslogtreecommitdiff
path: root/src/server/QXmppIncomingClient.cpp
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2019-12-14 23:44:51 +0100
committerLNJ <lnj@kaidan.im>2020-01-20 17:14:49 +0100
commite4c9336b2319aba7cc254b84b76e957e92b301e6 (patch)
tree78e43794f04eac303abe274e41c6b2cfad7f32df /src/server/QXmppIncomingClient.cpp
parent28411b5995553eb3a50c826c55517b4c610959c2 (diff)
downloadqxmpp-e4c9336b2319aba7cc254b84b76e957e92b301e6.tar.gz
server: Replace manual checks and hard-coded XML by QXmppStartTlsPacket
Diffstat (limited to 'src/server/QXmppIncomingClient.cpp')
-rw-r--r--src/server/QXmppIncomingClient.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/server/QXmppIncomingClient.cpp b/src/server/QXmppIncomingClient.cpp
index c7da7bfd..009d4427 100644
--- a/src/server/QXmppIncomingClient.cpp
+++ b/src/server/QXmppIncomingClient.cpp
@@ -33,6 +33,7 @@
#include "QXmppPasswordChecker.h"
#include "QXmppSasl_p.h"
#include "QXmppSessionIq.h"
+#include "QXmppStartTlsPacket.h"
#include "QXmppStreamFeatures.h"
#include "QXmppUtils.h"
@@ -237,15 +238,12 @@ void QXmppIncomingClient::handleStanza(const QDomElement &nodeRecv)
if (d->idleTimer->interval())
d->idleTimer->start();
- if (ns == ns_tls && nodeRecv.tagName() == QLatin1String("starttls"))
- {
- sendData("<proceed xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>");
+ if (QXmppStartTlsPacket::isStartTlsPacket(nodeRecv, QXmppStartTlsPacket::StartTls)) {
+ sendPacket(QXmppStartTlsPacket(QXmppStartTlsPacket::Proceed));
socket()->flush();
socket()->startServerEncryption();
return;
- }
- else if (ns == ns_sasl)
- {
+ } else if (ns == ns_sasl) {
if (!d->passwordChecker) {
warning("Cannot perform authentication, no password checker");
sendPacket(QXmppSaslFailure("temporary-auth-failure"));