From 754ab1a32d250f7fd6110546d8baa5e19b68240d Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Sat, 28 Aug 2010 09:39:46 +0000 Subject: make sure incoming clients ask for the right domain --- src/QXmppIncomingClient.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/QXmppIncomingClient.cpp') diff --git a/src/QXmppIncomingClient.cpp b/src/QXmppIncomingClient.cpp index 83b15cc0..ace50158 100644 --- a/src/QXmppIncomingClient.cpp +++ b/src/QXmppIncomingClient.cpp @@ -61,7 +61,7 @@ QXmppIncomingClient::QXmppIncomingClient(QSslSocket *socket, const QString &doma d->passwordChecker = 0; d->domain = domain; - setObjectName("C2S"); + setObjectName("C2S-in"); setSocket(socket); // create inactivity timer @@ -118,8 +118,6 @@ void QXmppIncomingClient::setPasswordChecker(QXmppPasswordChecker *checker) void QXmppIncomingClient::handleStream(const QDomElement &streamElement) { - Q_UNUSED(streamElement); - d->idleTimer->start(); // start stream @@ -133,6 +131,20 @@ void QXmppIncomingClient::handleStream(const QDomElement &streamElement) d->domain.toAscii()); sendData(response.toUtf8()); + // check requested domain + if (streamElement.attribute("to") != d->domain) + { + QString response = QString("" + "" + "" + "This server does not serve %1" + "" + "").arg(streamElement.attribute("to")); + sendData(response.toUtf8()); + disconnectFromHost(); + return; + } + // send stream features QXmppStreamFeatures features; if (!socket()->isEncrypted() && !socket()->localCertificate().isNull() && !socket()->privateKey().isNull()) -- cgit v1.2.3