aboutsummaryrefslogtreecommitdiff
path: root/src/server/QXmppServer.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-09-10 13:41:58 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-09-10 13:41:58 +0200
commit973a7a6a0b905f75e10955dca3c6af37f93e853a (patch)
tree099129c0a319b5d897391b5e6de88a233e5565b2 /src/server/QXmppServer.cpp
parentfcf89b7834cd253eb5993f03d891d0b6ab1a9953 (diff)
more plumbing for stat counters
Diffstat (limited to 'src/server/QXmppServer.cpp')
-rw-r--r--src/server/QXmppServer.cpp26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/server/QXmppServer.cpp b/src/server/QXmppServer.cpp
index b329053d..0027aa6f 100644
--- a/src/server/QXmppServer.cpp
+++ b/src/server/QXmppServer.cpp
@@ -391,14 +391,24 @@ QXmppLogger *QXmppServer::logger()
void QXmppServer::setLogger(QXmppLogger *logger)
{
- if (d->logger)
- QObject::disconnect(this, SIGNAL(logMessage(QXmppLogger::MessageType,QString)),
- d->logger, SLOT(log(QXmppLogger::MessageType,QString)));
- d->logger = logger;
- d->logger = logger;
- if (d->logger)
- connect(this, SIGNAL(logMessage(QXmppLogger::MessageType,QString)),
- d->logger, SLOT(log(QXmppLogger::MessageType,QString)));
+ if (logger != d->logger) {
+ if (d->logger) {
+ disconnect(this, SIGNAL(incrementCounter(QString)),
+ d->logger, SLOT(incrementCounter(QString)));
+ disconnect(this, SIGNAL(logMessage(QXmppLogger::MessageType,QString)),
+ d->logger, SLOT(log(QXmppLogger::MessageType,QString)));
+ }
+
+ d->logger = logger;
+ if (d->logger) {
+ connect(this, SIGNAL(incrementCounter(QString)),
+ d->logger, SLOT(incrementCounter(QString)));
+ connect(this, SIGNAL(logMessage(QXmppLogger::MessageType,QString)),
+ d->logger, SLOT(log(QXmppLogger::MessageType,QString)));
+ }
+
+ emit loggerChanged(d->logger);
+ }
}
/// Returns the password checker used to verify client credentials.