aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-06-23 11:37:08 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-06-23 11:37:08 +0000
commitc519dcec0915d0d22e8c5e4e40e6b61bc72d5979 (patch)
tree029c23d910f3be7cb68808c4064469c00c2e0425
parent9ed3b3203d9b9fe195f51602717d726e0dcab7c3 (diff)
downloadqxmpp-c519dcec0915d0d22e8c5e4e40e6b61bc72d5979.tar.gz
tidy up QXmppStream logging so that we can set a null logger
-rw-r--r--source/QXmppArchiveManager.cpp1
-rw-r--r--source/QXmppReconnectionManager.cpp1
-rw-r--r--source/QXmppStream.cpp19
-rw-r--r--source/QXmppStream.h5
-rw-r--r--source/QXmppTransferManager.cpp29
-rw-r--r--source/QXmppTransferManager.h4
6 files changed, 38 insertions, 21 deletions
diff --git a/source/QXmppArchiveManager.cpp b/source/QXmppArchiveManager.cpp
index 7ff0e5f6..d15af80a 100644
--- a/source/QXmppArchiveManager.cpp
+++ b/source/QXmppArchiveManager.cpp
@@ -57,7 +57,6 @@ void QXmppArchiveManager::archiveListIqReceived(const QXmppArchiveListIq &listIq
void QXmppArchiveManager::archivePrefIqReceived(const QXmppArchivePrefIq &prefIq)
{
Q_UNUSED(prefIq);
- qDebug() << "got archive preferences";
}
void QXmppArchiveManager::listCollections(const QString &jid, const QDateTime &start, const QDateTime &end, int max)
diff --git a/source/QXmppReconnectionManager.cpp b/source/QXmppReconnectionManager.cpp
index 868caedf..fb53d7dd 100644
--- a/source/QXmppReconnectionManager.cpp
+++ b/source/QXmppReconnectionManager.cpp
@@ -88,7 +88,6 @@ void QXmppReconnectionManager::reconnect()
{
if(m_client)
{
- m_client->logger()->log(QXmppLogger::DebugMessage, "QXmppReconnectionManager::reconnect()");
emit reconnectingNow();
m_client->connectToServer(m_client->getConfiguration(), m_client->getClientPresence());
}
diff --git a/source/QXmppStream.cpp b/source/QXmppStream.cpp
index ea137959..a46130ca 100644
--- a/source/QXmppStream.cpp
+++ b/source/QXmppStream.cpp
@@ -61,6 +61,7 @@ static const QByteArray streamRootElementEnd = "</stream:stream>";
QXmppStream::QXmppStream(QObject *parent)
: QObject(parent),
+ m_logger(0),
m_sessionAvailable(false),
m_authStep(0)
{
@@ -68,7 +69,7 @@ QXmppStream::QXmppStream(QObject *parent)
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
// initialise logger
- m_logger = QXmppLogger::getLogger();
+ setLogger(QXmppLogger::getLogger());
bool check = QObject::connect(&m_socket, SIGNAL(hostFound()),
this, SLOT(socketHostFound()));
@@ -205,22 +206,28 @@ QXmppLogger *QXmppStream::logger()
void QXmppStream::setLogger(QXmppLogger *logger)
{
+ if (m_logger)
+ QObject::disconnect(this, SIGNAL(logMessage(QXmppLogger::MessageType, QString)),
+ m_logger, SLOT(log(QXmppLogger::MessageType, QString)));
m_logger = logger;
+ if (m_logger)
+ QObject::connect(this, SIGNAL(logMessage(QXmppLogger::MessageType, QString)),
+ m_logger, SLOT(log(QXmppLogger::MessageType, QString)));
}
void QXmppStream::debug(const QString &data)
{
- m_logger->log(QXmppLogger::DebugMessage, data);
+ emit logMessage(QXmppLogger::DebugMessage, data);
}
void QXmppStream::info(const QString &data)
{
- m_logger->log(QXmppLogger::InformationMessage, data);
+ emit logMessage(QXmppLogger::InformationMessage, data);
}
void QXmppStream::warning(const QString &data)
{
- m_logger->log(QXmppLogger::WarningMessage, data);
+ emit logMessage(QXmppLogger::WarningMessage, data);
}
void QXmppStream::parser(const QByteArray& data)
@@ -245,7 +252,7 @@ void QXmppStream::parser(const QByteArray& data)
if(doc.setContent(completeXml, true))
{
- m_logger->log(QXmppLogger::ReceivedMessage, QString::fromUtf8(m_dataBuffer));
+ emit logMessage(QXmppLogger::ReceivedMessage, QString::fromUtf8(m_dataBuffer));
flushDataBuffer();
QDomElement nodeRecv = doc.documentElement().firstChildElement();
@@ -750,7 +757,7 @@ void QXmppStream::sendStartStream()
bool QXmppStream::sendToServer(const QByteArray& packet)
{
- m_logger->log(QXmppLogger::SentMessage, QString::fromUtf8(packet));
+ emit logMessage(QXmppLogger::SentMessage, QString::fromUtf8(packet));
if (!isConnected())
return false;
return m_socket.write( packet ) == packet.size();
diff --git a/source/QXmppStream.h b/source/QXmppStream.h
index b82592c2..e71ba5b0 100644
--- a/source/QXmppStream.h
+++ b/source/QXmppStream.h
@@ -29,6 +29,7 @@
#include <QSslSocket>
#include "QXmppClient.h"
#include "QXmppConfiguration.h"
+#include "QXmppLogger.h"
#include "QXmppStanza.h"
class QDomElement;
@@ -36,7 +37,6 @@ class QTimer;
class QXmppClient;
class QXmppPacket;
-class QXmppLogger;
class QXmppPresence;
class QXmppIq;
class QXmppBind;
@@ -93,6 +93,9 @@ signals:
// xmpp connected
void xmppConnected();
+ /// This signal is emitted to send logging messages.
+ void logMessage(QXmppLogger::MessageType type, const QString &msg);
+
void error(QXmppClient::Error);
void subscriptionRequestReceived(const QString& from);
void elementReceived(const QDomElement &element, bool &handled);
diff --git a/source/QXmppTransferManager.cpp b/source/QXmppTransferManager.cpp
index f86fcf09..29348167 100644
--- a/source/QXmppTransferManager.cpp
+++ b/source/QXmppTransferManager.cpp
@@ -353,8 +353,13 @@ QXmppTransferManager::QXmppTransferManager(QXmppStream *stream, QObject *parent)
m_socksServer(0),
m_supportedMethods(QXmppTransferJob::AnyMethod)
{
+ // Logging
+ bool check = connect(this, SIGNAL(logMessage(QXmppLogger::MessageType, QString)),
+ m_stream, SIGNAL(logMessage(QXmppLogger::MessageType, QString)));
+ Q_ASSERT(check);
+
// XEP-0047: In-Band Bytestreams
- bool check = QObject::connect(m_stream, SIGNAL(iqReceived(const QXmppIq&)),
+ check = QObject::connect(m_stream, SIGNAL(iqReceived(const QXmppIq&)),
this, SLOT(iqReceived(const QXmppIq&)));
Q_ASSERT(check);
@@ -387,7 +392,7 @@ QXmppTransferManager::QXmppTransferManager(QXmppStream *stream, QObject *parent)
connect(m_socksServer, SIGNAL(newConnection(QTcpSocket*, const QString&, quint16)),
this, SLOT(socksServerConnected(QTcpSocket*, const QString&, quint16)));
} else {
- qWarning() << "QXmppSocksServer could not start listening";
+ emit logMessage(QXmppLogger::WarningMessage, "QXmppSocksServer could not start listening");
}
}
@@ -443,7 +448,7 @@ void QXmppTransferManager::byteStreamResultReceived(const QXmppByteStreamIq &iq)
if (iq.streamHostUsed() == job->m_socksProxy.jid())
{
const QXmppByteStreamIq::StreamHost streamHost = job->m_socksProxy;
- m_stream->logger()->log(QXmppLogger::InformationMessage,
+ emit logMessage(QXmppLogger::InformationMessage,
QString("Connecting to proxy: %1 (%2:%3)").arg(
streamHost.jid(),
streamHost.host().toString(),
@@ -459,7 +464,7 @@ void QXmppTransferManager::byteStreamResultReceived(const QXmppByteStreamIq &iq)
// FIXME : this should probably be made asynchronous as it blocks XMPP packet handling
if (!socksClient->waitForReady(socksTimeout))
{
- m_stream->logger()->log(QXmppLogger::WarningMessage,
+ emit logMessage(QXmppLogger::WarningMessage,
QString("Failed to connect to proxy: %1 (%2:%3)").arg(
streamHost.jid(),
streamHost.host().toString(),
@@ -486,7 +491,7 @@ void QXmppTransferManager::byteStreamResultReceived(const QXmppByteStreamIq &iq)
// direction connection, start sending data
if (!job->m_socksSocket)
{
- qWarning("Client says they connected to our SOCKS server, but they did not");
+ emit logMessage(QXmppLogger::WarningMessage, "Client says they connected to our SOCKS server, but they did not");
job->terminate(QXmppTransferJob::ProtocolError);
return;
}
@@ -523,7 +528,7 @@ void QXmppTransferManager::byteStreamSetReceived(const QXmppByteStreamIq &iq)
// try connecting to the offered stream hosts
foreach (const QXmppByteStreamIq::StreamHost &streamHost, iq.streamHosts())
{
- m_stream->logger()->log(QXmppLogger::InformationMessage,
+ emit logMessage(QXmppLogger::InformationMessage,
QString("Connecting to streamhost: %1 (%2:%3)").arg(
streamHost.jid(),
streamHost.host().toString(),
@@ -553,7 +558,7 @@ void QXmppTransferManager::byteStreamSetReceived(const QXmppByteStreamIq &iq)
m_stream->sendPacket(ackIq);
return;
} else {
- m_stream->logger()->log(QXmppLogger::WarningMessage,
+ emit logMessage(QXmppLogger::WarningMessage,
QString("Failed to connect to streamhost: %1 (%2:%3)").arg(
streamHost.jid(),
streamHost.host().toString(),
@@ -764,7 +769,7 @@ void QXmppTransferManager::iqReceived(const QXmppIq &iq)
job->sendData();
} else if (iq.type() == QXmppIq::Error) {
// proxy stream not activated, terminate
- qWarning("Could not activate SOCKS5 proxy bytestream");
+ emit logMessage(QXmppLogger::WarningMessage, "Could not activate SOCKS5 proxy bytestream");
job->terminate(QXmppTransferJob::ProtocolError);
}
} else {
@@ -1038,7 +1043,7 @@ void QXmppTransferManager::socksServerConnected(QTcpSocket *socket, const QStrin
return;
}
}
- qWarning("QXmppSocksServer got a connection for a unknown stream");
+ emit logMessage(QXmppLogger::WarningMessage, "QXmppSocksServer got a connection for a unknown stream");
socket->close();
}
@@ -1079,7 +1084,7 @@ void QXmppTransferManager::socksServerSendOffer(QXmppTransferJob *job)
// check we have some stream hosts
if (!streamHosts.size())
{
- qWarning("Could not determine local stream hosts");
+ emit logMessage(QXmppLogger::WarningMessage, "Could not determine local stream hosts");
job->terminate(QXmppTransferJob::ProtocolError);
return;
}
@@ -1148,7 +1153,7 @@ void QXmppTransferManager::streamInitiationResultReceived(const QXmppStreamIniti
} else if (job->method() == QXmppTransferJob::SocksMethod) {
if (!m_socksServer->isListening())
{
- qWarning() << "QXmppSocksServer is not listening";
+ emit logMessage(QXmppLogger::WarningMessage, "QXmppSocksServer is not listening");
job->terminate(QXmppTransferJob::ProtocolError);
return;
}
@@ -1167,7 +1172,7 @@ void QXmppTransferManager::streamInitiationResultReceived(const QXmppStreamIniti
socksServerSendOffer(job);
}
} else {
- qWarning("We received an unsupported method");
+ emit logMessage(QXmppLogger::WarningMessage, "QXmppTransferManager received an unsupported method");
job->terminate(QXmppTransferJob::ProtocolError);
}
}
diff --git a/source/QXmppTransferManager.h b/source/QXmppTransferManager.h
index 0c758ce8..2a4642c0 100644
--- a/source/QXmppTransferManager.h
+++ b/source/QXmppTransferManager.h
@@ -32,6 +32,7 @@
#include "QXmppIq.h"
#include "QXmppByteStreamIq.h"
+#include "QXmppLogger.h"
class QTcpSocket;
class QXmppByteStreamIq;
@@ -226,6 +227,9 @@ signals:
void fileReceived(QXmppTransferJob *offer);
void finished(QXmppTransferJob *job);
+ /// This signal is emitted to send logging messages.
+ void logMessage(QXmppLogger::MessageType type, const QString &msg);
+
private slots:
void byteStreamIqReceived(const QXmppByteStreamIq&);
void ibbCloseIqReceived(const QXmppIbbCloseIq&);