diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-06-23 11:37:08 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-06-23 11:37:08 +0000 |
| commit | c519dcec0915d0d22e8c5e4e40e6b61bc72d5979 (patch) | |
| tree | 029c23d910f3be7cb68808c4064469c00c2e0425 | |
| parent | 9ed3b3203d9b9fe195f51602717d726e0dcab7c3 (diff) | |
| download | qxmpp-c519dcec0915d0d22e8c5e4e40e6b61bc72d5979.tar.gz | |
tidy up QXmppStream logging so that we can set a null logger
| -rw-r--r-- | source/QXmppArchiveManager.cpp | 1 | ||||
| -rw-r--r-- | source/QXmppReconnectionManager.cpp | 1 | ||||
| -rw-r--r-- | source/QXmppStream.cpp | 19 | ||||
| -rw-r--r-- | source/QXmppStream.h | 5 | ||||
| -rw-r--r-- | source/QXmppTransferManager.cpp | 29 | ||||
| -rw-r--r-- | source/QXmppTransferManager.h | 4 |
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&); |
