diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-09-10 13:06:13 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-09-10 13:06:13 +0200 |
| commit | fcf89b7834cd253eb5993f03d891d0b6ab1a9953 (patch) | |
| tree | abea7f9eb3ad2a55489390a6233172f51be94a7e /src | |
| parent | 07459d41fe7e316efe3a848eaec50cb2aebe19c9 (diff) | |
| download | qxmpp-fcf89b7834cd253eb5993f03d891d0b6ab1a9953.tar.gz | |
[server] lay groundwork for client auth statistics
Diffstat (limited to 'src')
| -rw-r--r-- | src/base/QXmppLogger.h | 3 | ||||
| -rw-r--r-- | src/server/QXmppIncomingClient.cpp | 9 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/base/QXmppLogger.h b/src/base/QXmppLogger.h index 8b72ec5f..096c3520 100644 --- a/src/base/QXmppLogger.h +++ b/src/base/QXmppLogger.h @@ -163,6 +163,9 @@ protected: } signals: + /// Increment the given \a counter. + void incrementCounter(const QString &counter); + /// This signal is emitted to send logging messages. void logMessage(QXmppLogger::MessageType type, const QString &msg); }; diff --git a/src/server/QXmppIncomingClient.cpp b/src/server/QXmppIncomingClient.cpp index 76fa9f6f..f3685ae9 100644 --- a/src/server/QXmppIncomingClient.cpp +++ b/src/server/QXmppIncomingClient.cpp @@ -306,6 +306,7 @@ void QXmppIncomingClient::handleStanza(const QDomElement &nodeRecv) // authentication succeeded d->jid = QString("%1@%2").arg(d->saslServer->username(), d->domain); info(QString("Authentication succeeded for '%1' from %2").arg(d->jid, d->origin())); + incrementCounter("incoming-client.auth.success"); sendPacket(QXmppSaslSuccess()); handleStart(); } else { @@ -398,7 +399,8 @@ void QXmppIncomingClient::onDigestReply() reply->deleteLater(); if (reply->error() == QXmppPasswordReply::TemporaryError) { - warning(QString("Temporary authentication failure for '%1'").arg(d->saslServer->username())); + warning(QString("Temporary authentication failure for '%1' from %2").arg(d->saslServer->username(), d->origin())); + incrementCounter("incoming-client.auth.temporary-auth-failure"); sendPacket(QXmppSaslFailure("temporary-auth-failure")); disconnectFromHost(); return; @@ -409,6 +411,8 @@ void QXmppIncomingClient::onDigestReply() QXmppSaslServer::Response result = d->saslServer->respond(reply->property("__sasl_raw").toByteArray(), challenge); if (result != QXmppSaslServer::Challenge) { + warning(QString("Authentication failed for '%1' from %2").arg(d->saslServer->username(), d->origin())); + incrementCounter("incoming-client.auth.not-authorized"); sendPacket(QXmppSaslFailure("not-authorized")); disconnectFromHost(); return; @@ -430,16 +434,19 @@ void QXmppIncomingClient::onPasswordReply() case QXmppPasswordReply::NoError: d->jid = jid; info(QString("Authentication succeeded for '%1' from %2").arg(d->jid, d->origin())); + incrementCounter("incoming-client.auth.success"); sendPacket(QXmppSaslSuccess()); handleStart(); break; case QXmppPasswordReply::AuthorizationError: warning(QString("Authentication failed for '%1' from %2").arg(jid, d->origin())); + incrementCounter("incoming-client.auth.not-authorized"); sendPacket(QXmppSaslFailure("not-authorized")); disconnectFromHost(); break; case QXmppPasswordReply::TemporaryError: warning(QString("Temporary authentication failure for '%1' from %2").arg(jid, d->origin())); + incrementCounter("incoming-client.auth.temporary-auth-failure"); sendPacket(QXmppSaslFailure("temporary-auth-failure")); disconnectFromHost(); break; |
