aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-09-05 20:37:05 +0200
committerLinus Jahn <lnj@kaidan.im>2022-09-06 00:46:56 +0200
commit5f813f8a4bbe1e075daad7b3933829044befffb4 (patch)
tree20102aa665b03cfb6dfe0c6ece94938320b6430e /src/server
parent4c60b13e0b8011e4e0b093a690e939f3b23e2436 (diff)
Reformat code
Diffstat (limited to 'src/server')
-rw-r--r--src/server/QXmppDialback.cpp13
-rw-r--r--src/server/QXmppIncomingClient.cpp37
-rw-r--r--src/server/QXmppIncomingServer.cpp17
-rw-r--r--src/server/QXmppOutgoingServer.cpp11
-rw-r--r--src/server/QXmppPasswordChecker.cpp3
-rw-r--r--src/server/QXmppServer.cpp69
-rw-r--r--src/server/QXmppServerExtension.cpp3
7 files changed, 100 insertions, 53 deletions
diff --git a/src/server/QXmppDialback.cpp b/src/server/QXmppDialback.cpp
index ac57e339..e7be12a8 100644
--- a/src/server/QXmppDialback.cpp
+++ b/src/server/QXmppDialback.cpp
@@ -75,26 +75,29 @@ bool QXmppDialback::isDialback(const QDomElement &element)
void QXmppDialback::parse(const QDomElement &element)
{
QXmppStanza::parse(element);
- if (element.tagName() == QLatin1String("result"))
+ if (element.tagName() == QLatin1String("result")) {
m_command = Result;
- else
+ } else {
m_command = Verify;
+ }
m_type = element.attribute("type");
m_key = element.text();
}
void QXmppDialback::toXml(QXmlStreamWriter *xmlWriter) const
{
- if (m_command == Result)
+ if (m_command == Result) {
xmlWriter->writeStartElement("db:result");
- else
+ } else {
xmlWriter->writeStartElement("db:verify");
+ }
helperToXmlAddAttribute(xmlWriter, "id", id());
helperToXmlAddAttribute(xmlWriter, "to", to());
helperToXmlAddAttribute(xmlWriter, "from", from());
helperToXmlAddAttribute(xmlWriter, "type", m_type);
- if (!m_key.isEmpty())
+ if (!m_key.isEmpty()) {
xmlWriter->writeCharacters(m_key);
+ }
xmlWriter->writeEndElement();
}
/// \endcond
diff --git a/src/server/QXmppIncomingClient.cpp b/src/server/QXmppIncomingClient.cpp
index de27d3e2..e86a309a 100644
--- a/src/server/QXmppIncomingClient.cpp
+++ b/src/server/QXmppIncomingClient.cpp
@@ -70,10 +70,11 @@ void QXmppIncomingClientPrivate::checkCredentials(const QByteArray &response)
QString QXmppIncomingClientPrivate::origin() const
{
QSslSocket *socket = q->socket();
- if (socket)
+ if (socket) {
return socket->peerAddress().toString() + " " + QString::number(socket->peerPort());
- else
+ } else {
return "<unknown>";
+ }
}
/// Constructs a new incoming client stream.
@@ -140,8 +141,9 @@ void QXmppIncomingClient::setInactivityTimeout(int secs)
{
d->idleTimer->stop();
d->idleTimer->setInterval(secs * 1000);
- if (d->idleTimer->interval())
+ if (d->idleTimer->interval()) {
d->idleTimer->start();
+ }
}
/// Sets the password checker used to verify client credentials.
@@ -157,8 +159,9 @@ void QXmppIncomingClient::setPasswordChecker(QXmppPasswordChecker *checker)
/// \cond
void QXmppIncomingClient::handleStream(const QDomElement &streamElement)
{
- if (d->idleTimer->interval())
+ if (d->idleTimer->interval()) {
d->idleTimer->start();
+ }
if (d->saslServer != nullptr) {
delete d->saslServer;
d->saslServer = nullptr;
@@ -192,16 +195,18 @@ void QXmppIncomingClient::handleStream(const QDomElement &streamElement)
// send stream features
QXmppStreamFeatures features;
- if (socket() && !socket()->isEncrypted() && !socket()->localCertificate().isNull() && !socket()->privateKey().isNull())
+ if (socket() && !socket()->isEncrypted() && !socket()->localCertificate().isNull() && !socket()->privateKey().isNull()) {
features.setTlsMode(QXmppStreamFeatures::Enabled);
+ }
if (!d->jid.isEmpty()) {
features.setBindMode(QXmppStreamFeatures::Required);
features.setSessionMode(QXmppStreamFeatures::Enabled);
} else if (d->passwordChecker) {
QStringList mechanisms;
mechanisms << "PLAIN";
- if (d->passwordChecker->hasGetPassword())
+ if (d->passwordChecker->hasGetPassword()) {
mechanisms << "DIGEST-MD5";
+ }
features.setAuthMechanisms(mechanisms);
}
sendPacket(features);
@@ -211,8 +216,9 @@ void QXmppIncomingClient::handleStanza(const QDomElement &nodeRecv)
{
const QString ns = nodeRecv.namespaceURI();
- if (d->idleTimer->interval())
+ if (d->idleTimer->interval()) {
d->idleTimer->start();
+ }
if (QXmppStartTlsPacket::isStartTlsPacket(nodeRecv, QXmppStartTlsPacket::StartTls)) {
sendPacket(QXmppStartTlsPacket(QXmppStartTlsPacket::Proceed));
@@ -290,8 +296,9 @@ void QXmppIncomingClient::handleStanza(const QDomElement &nodeRecv)
QXmppBindIq bindSet;
bindSet.parse(nodeRecv);
d->resource = bindSet.resource().trimmed();
- if (d->resource.isEmpty())
+ if (d->resource.isEmpty()) {
d->resource = QXmppUtils::generateStanzaHash();
+ }
d->jid = QString("%1/%2").arg(QXmppUtils::jidToBareJid(d->jid), d->resource);
QXmppBindIq bindResult;
@@ -333,15 +340,17 @@ void QXmppIncomingClient::handleStanza(const QDomElement &nodeRecv)
if (nodeFull.attribute("from").isEmpty()) {
if (nodeFull.tagName() == QLatin1String("presence") &&
(nodeFull.attribute("type") == QLatin1String("subscribe") ||
- nodeFull.attribute("type") == QLatin1String("subscribed")))
+ nodeFull.attribute("type") == QLatin1String("subscribed"))) {
nodeFull.setAttribute("from", QXmppUtils::jidToBareJid(d->jid));
- else
+ } else {
nodeFull.setAttribute("from", d->jid);
+ }
}
// if the recipient is empty, set it to the local domain
- if (nodeFull.attribute("to").isEmpty())
+ if (nodeFull.attribute("to").isEmpty()) {
nodeFull.setAttribute("to", d->domain);
+ }
// emit stanza for processing by server
emit elementReceived(nodeFull);
@@ -353,8 +362,9 @@ void QXmppIncomingClient::handleStanza(const QDomElement &nodeRecv)
void QXmppIncomingClient::onDigestReply()
{
auto *reply = qobject_cast<QXmppPasswordReply *>(sender());
- if (!reply)
+ if (!reply) {
return;
+ }
reply->deleteLater();
if (reply->error() == QXmppPasswordReply::TemporaryError) {
@@ -384,8 +394,9 @@ void QXmppIncomingClient::onDigestReply()
void QXmppIncomingClient::onPasswordReply()
{
auto *reply = qobject_cast<QXmppPasswordReply *>(sender());
- if (!reply)
+ if (!reply) {
return;
+ }
reply->deleteLater();
const QString jid = QString("%1@%2").arg(d->saslServer->username(), d->domain);
diff --git a/src/server/QXmppIncomingServer.cpp b/src/server/QXmppIncomingServer.cpp
index dd245606..962c087d 100644
--- a/src/server/QXmppIncomingServer.cpp
+++ b/src/server/QXmppIncomingServer.cpp
@@ -38,10 +38,11 @@ QXmppIncomingServerPrivate::QXmppIncomingServerPrivate(QXmppIncomingServer *qq)
QString QXmppIncomingServerPrivate::origin() const
{
QSslSocket *socket = q->socket();
- if (socket)
+ if (socket) {
return socket->peerAddress().toString() + " " + QString::number(socket->peerPort());
- else
+ } else {
return "<unknown>";
+ }
}
/// Constructs a new incoming server stream.
@@ -87,8 +88,9 @@ QString QXmppIncomingServer::localStreamId() const
void QXmppIncomingServer::handleStream(const QDomElement &streamElement)
{
const QString from = streamElement.attribute("from");
- if (!from.isEmpty())
+ if (!from.isEmpty()) {
info(QString("Incoming server stream from %1 on %2").arg(from, d->origin()));
+ }
// start stream
d->localStreamId = QXmppUtils::generateStanzaHash().toLatin1();
@@ -104,8 +106,9 @@ void QXmppIncomingServer::handleStream(const QDomElement &streamElement)
// send stream features
QXmppStreamFeatures features;
- if (!socket()->isEncrypted() && !socket()->localCertificate().isNull() && !socket()->privateKey().isNull())
+ if (!socket()->isEncrypted() && !socket()->localCertificate().isNull() && !socket()->privateKey().isNull()) {
features.setTlsMode(QXmppStreamFeatures::Enabled);
+ }
sendPacket(features);
}
@@ -173,8 +176,9 @@ void QXmppIncomingServer::slotDialbackResponseReceived(const QXmppDialback &dial
if (!stream ||
dialback.command() != QXmppDialback::Verify ||
dialback.id() != d->localStreamId ||
- dialback.from() != stream->remoteDomain())
+ dialback.from() != stream->remoteDomain()) {
return;
+ }
// relay verify response
QXmppDialback response;
@@ -189,8 +193,9 @@ void QXmppIncomingServer::slotDialbackResponseReceived(const QXmppDialback &dial
info(QString("Verified incoming domain '%1' on %2").arg(dialback.from(), d->origin()));
const bool wasConnected = !d->authenticated.isEmpty();
d->authenticated.insert(dialback.from());
- if (!wasConnected)
+ if (!wasConnected) {
emit connected();
+ }
} else {
warning(QString("Failed to verify incoming domain '%1' on %2").arg(dialback.from(), d->origin()));
disconnectFromHost();
diff --git a/src/server/QXmppOutgoingServer.cpp b/src/server/QXmppOutgoingServer.cpp
index 7d47e9e5..49e6f4b2 100644
--- a/src/server/QXmppOutgoingServer.cpp
+++ b/src/server/QXmppOutgoingServer.cpp
@@ -196,8 +196,9 @@ void QXmppOutgoingServer::handleStanza(const QDomElement &stanza)
d->ready = true;
// send queued data
- for (const auto &data : std::as_const(d->dataQueue))
+ for (const auto &data : std::as_const(d->dataQueue)) {
sendData(data);
+ }
d->dataQueue.clear();
// emit signal
@@ -251,10 +252,11 @@ void QXmppOutgoingServer::setVerify(const QString &id, const QString &key)
void QXmppOutgoingServer::queueData(const QByteArray &data)
{
- if (isConnected())
+ if (isConnected()) {
sendData(data);
- else
+ } else {
d->dataQueue.append(data);
+ }
}
/// Returns the remote server's domain.
@@ -291,8 +293,9 @@ void QXmppOutgoingServer::sendDialback()
void QXmppOutgoingServer::slotSslErrors(const QList<QSslError> &errors)
{
warning("SSL errors");
- for (int i = 0; i < errors.count(); ++i)
+ for (int i = 0; i < errors.count(); ++i) {
warning(errors.at(i).errorString());
+ }
socket()->ignoreSslErrors();
}
diff --git a/src/server/QXmppPasswordChecker.cpp b/src/server/QXmppPasswordChecker.cpp
index 237dfa2c..4a3dd3a5 100644
--- a/src/server/QXmppPasswordChecker.cpp
+++ b/src/server/QXmppPasswordChecker.cpp
@@ -148,8 +148,9 @@ QXmppPasswordReply *QXmppPasswordChecker::checkPassword(const QXmppPasswordReque
QString secret;
QXmppPasswordReply::Error error = getPassword(request, secret);
if (error == QXmppPasswordReply::NoError) {
- if (request.password() != secret)
+ if (request.password() != secret) {
reply->setError(QXmppPasswordReply::AuthorizationError);
+ }
} else {
reply->setError(error);
}
diff --git a/src/server/QXmppServer.cpp b/src/server/QXmppServer.cpp
index 35b0d2ad..6409788e 100644
--- a/src/server/QXmppServer.cpp
+++ b/src/server/QXmppServer.cpp
@@ -30,8 +30,9 @@ static void helperToXmlAddDomElement(QXmlStreamWriter *stream, const QDomElement
/* attributes */
QString xmlns = element.namespaceURI();
- if (!xmlns.isEmpty() && !omitNamespaces.contains(xmlns))
+ if (!xmlns.isEmpty() && !omitNamespaces.contains(xmlns)) {
stream->writeDefaultNamespace(xmlns);
+ }
QDomNamedNodeMap attrs = element.attributes();
for (int i = 0; i < attrs.size(); i++) {
QDomAttr attr = attrs.item(i).toAttr();
@@ -109,20 +110,23 @@ bool QXmppServerPrivate::routeData(const QString &to, const QByteArray &data)
{
// refuse to route packets to empty destination, own domain or sub-domains
const QString toDomain = QXmppUtils::jidToDomain(to);
- if (to.isEmpty() || to == domain || toDomain.endsWith("." + domain))
+ if (to.isEmpty() || to == domain || toDomain.endsWith("." + domain)) {
return false;
+ }
if (toDomain == domain) {
// look for a client connection
QList<QXmppIncomingClient *> found;
if (QXmppUtils::jidToResource(to).isEmpty()) {
const auto &connections = incomingClientsByBareJid.value(to);
- for (auto *conn : connections)
+ for (auto *conn : connections) {
found << conn;
+ }
} else {
QXmppIncomingClient *conn = incomingClientsByJid.value(to);
- if (conn)
+ if (conn) {
found << conn;
+ }
}
// send data
@@ -178,9 +182,11 @@ static void handleStanza(QXmppServer *server, const QDomElement &element)
{
// try extensions
const auto &extensions = server->extensions();
- for (auto *extension : extensions)
- if (extension->handleStanza(element))
+ for (auto *extension : extensions) {
+ if (extension->handleStanza(element)) {
return;
+ }
+ }
// default handlers
const QString domain = server->domain();
@@ -224,14 +230,16 @@ static void handleStanza(QXmppServer *server, const QDomElement &element)
void QXmppServerPrivate::info(const QString &message)
{
- if (logger)
+ if (logger) {
logger->log(QXmppLogger::InformationMessage, message);
+ }
}
void QXmppServerPrivate::warning(const QString &message)
{
- if (logger)
+ if (logger) {
logger->log(QXmppLogger::WarningMessage, message);
+ }
}
/// Load the server's extensions.
@@ -244,12 +252,14 @@ void QXmppServerPrivate::loadExtensions(QXmppServer *server)
const auto pluginLoaders = QPluginLoader::staticInstances();
for (auto *object : pluginLoaders) {
auto *plugin = qobject_cast<QXmppServerPlugin *>(object);
- if (!plugin)
+ if (!plugin) {
continue;
+ }
const auto &keys = plugin->keys();
- for (const auto &key : keys)
+ for (const auto &key : keys) {
server->addExtension(plugin->create(key));
+ }
}
loaded = true;
}
@@ -261,8 +271,9 @@ void QXmppServerPrivate::startExtensions()
{
if (!started) {
for (auto *extension : std::as_const(extensions)) {
- if (!extension->start())
+ if (!extension->start()) {
warning(QString("Could not start extension %1").arg(extension->extensionName()));
+ }
}
started = true;
}
@@ -274,8 +285,9 @@ void QXmppServerPrivate::startExtensions()
void QXmppServerPrivate::stopExtensions()
{
if (started) {
- for (int i = extensions.size() - 1; i >= 0; --i)
+ for (int i = extensions.size() - 1; i >= 0; --i) {
extensions[i]->stop();
+ }
started = false;
}
}
@@ -305,8 +317,9 @@ QXmppServer::~QXmppServer()
void QXmppServer::addExtension(QXmppServerExtension *extension)
{
- if (!extension || d->extensions.contains(extension))
+ if (!extension || d->extensions.contains(extension)) {
return;
+ }
d->info(QString("Added extension %1").arg(extension->extensionName()));
extension->setParent(this);
extension->setServer(this);
@@ -592,8 +605,9 @@ void QXmppServer::close()
// close XMPP streams
QSetIterator<QXmppIncomingClient *> itr(d->incomingClients);
- while (itr.hasNext())
+ while (itr.hasNext()) {
itr.next()->disconnectFromHost();
+ }
for (auto *stream : std::as_const(d->incomingServers)) {
stream->disconnectFromHost();
}
@@ -719,8 +733,9 @@ void QXmppServer::_q_clientConnection(QSslSocket *socket)
void QXmppServer::_q_clientConnected()
{
auto *client = qobject_cast<QXmppIncomingClient *>(sender());
- if (!client)
+ if (!client) {
return;
+ }
// FIXME: at this point the JID must contain a resource, assert it?
const QString jid = client->jid();
@@ -743,20 +758,23 @@ void QXmppServer::_q_clientConnected()
void QXmppServer::_q_clientDisconnected()
{
auto *client = qobject_cast<QXmppIncomingClient *>(sender());
- if (!client)
+ if (!client) {
return;
+ }
if (d->incomingClients.remove(client)) {
// remove stream from routing tables
const QString jid = client->jid();
if (!jid.isEmpty()) {
- if (d->incomingClientsByJid.value(jid) == client)
+ if (d->incomingClientsByJid.value(jid) == client) {
d->incomingClientsByJid.remove(jid);
+ }
const QString bareJid = QXmppUtils::jidToBareJid(jid);
if (d->incomingClientsByBareJid.contains(bareJid)) {
d->incomingClientsByBareJid[bareJid].remove(client);
- if (d->incomingClientsByBareJid[bareJid].isEmpty())
+ if (d->incomingClientsByBareJid[bareJid].isEmpty()) {
d->incomingClientsByBareJid.remove(bareJid);
+ }
}
}
@@ -764,8 +782,9 @@ void QXmppServer::_q_clientDisconnected()
client->deleteLater();
// emit signal
- if (!jid.isEmpty())
+ if (!jid.isEmpty()) {
emit clientDisconnected(jid);
+ }
// update counter
emit setGauge("incoming-client.count", d->incomingClients.size());
@@ -775,14 +794,16 @@ void QXmppServer::_q_clientDisconnected()
void QXmppServer::_q_dialbackRequestReceived(const QXmppDialback &dialback)
{
auto *stream = qobject_cast<QXmppIncomingServer *>(sender());
- if (!stream)
+ if (!stream) {
return;
+ }
if (dialback.command() == QXmppDialback::Verify) {
// handle a verify request
for (auto *out : std::as_const(d->outgoingServers)) {
- if (out->remoteDomain() != dialback.from())
+ if (out->remoteDomain() != dialback.from()) {
continue;
+ }
bool isValid = dialback.key() == out->localStreamKey();
QXmppDialback verify;
@@ -809,8 +830,9 @@ void QXmppServer::handleElement(const QDomElement &element)
void QXmppServer::_q_outgoingServerDisconnected()
{
auto *outgoing = qobject_cast<QXmppOutgoingServer *>(sender());
- if (!outgoing)
+ if (!outgoing) {
return;
+ }
if (d->outgoingServers.remove(outgoing)) {
outgoing->deleteLater();
@@ -853,8 +875,9 @@ void QXmppServer::_q_serverConnection(QSslSocket *socket)
void QXmppServer::_q_serverDisconnected()
{
auto *incoming = qobject_cast<QXmppIncomingServer *>(sender());
- if (!incoming)
+ if (!incoming) {
return;
+ }
if (d->incomingServers.remove(incoming)) {
incoming->deleteLater();
diff --git a/src/server/QXmppServerExtension.cpp b/src/server/QXmppServerExtension.cpp
index 5ee67356..1dabdd7a 100644
--- a/src/server/QXmppServerExtension.cpp
+++ b/src/server/QXmppServerExtension.cpp
@@ -50,8 +50,9 @@ QStringList QXmppServerExtension::discoveryItems() const
QString QXmppServerExtension::extensionName() const
{
int index = metaObject()->indexOfClassInfo("ExtensionName");
- if (index < 0)
+ if (index < 0) {
return QString();
+ }
const char *name = metaObject()->classInfo(index).value();
return QString::fromLatin1(name);
}