diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-05-11 12:25:21 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-05-11 12:25:21 +0000 |
| commit | 9d92efc86417fbefcd426d55fd70e5e7e20779ce (patch) | |
| tree | 563280f7752248d3dc6d4e0f29735dd3599b764f | |
| parent | aa1c563caecb9b67171ff4415b2a1254a016917b (diff) | |
| download | qxmpp-9d92efc86417fbefcd426d55fd70e5e7e20779ce.tar.gz | |
report authentication errors
| -rw-r--r-- | source/QXmppClient.cpp | 4 | ||||
| -rw-r--r-- | source/QXmppClient.h | 12 | ||||
| -rw-r--r-- | source/QXmppReconnectionManager.cpp | 2 | ||||
| -rw-r--r-- | source/QXmppStream.cpp | 12 | ||||
| -rw-r--r-- | source/QXmppStream.h | 5 |
5 files changed, 15 insertions, 20 deletions
diff --git a/source/QXmppClient.cpp b/source/QXmppClient.cpp index 6e0c87a2..f69eec5c 100644 --- a/source/QXmppClient.cpp +++ b/source/QXmppClient.cpp @@ -379,10 +379,10 @@ QAbstractSocket::SocketError QXmppClient::getSocketError() /// Returns the XMPP stream error if QXmppClient::Error is QXmppClient::XmppStreamError. /// -/// \return QXmppClient::StreamError +/// \return QXmppClient::Error::Condition /// -QXmppClient::StreamError QXmppClient::getXmppStreamError() +QXmppStanza::Error::Condition QXmppClient::getXmppStreamError() { return m_stream->getXmppStreamError(); } diff --git a/source/QXmppClient.h b/source/QXmppClient.h index f1225356..e1fb8513 100644 --- a/source/QXmppClient.h +++ b/source/QXmppClient.h @@ -79,16 +79,6 @@ public: SocketError, ///< Error due to TCP socket KeepAliveError, ///< Error due to no response to a keep alive XmppStreamError, ///< Error due to XML stream - XmppStanzaError ///< Error due to stanza - }; - - /// An enumeration for the type of XMPP stream error. - /// http://xmpp.org/rfcs/rfc3920.html#streams-error - enum StreamError - { - ConflictStreamError,///< <conflict/> the server is closing the active stream for this - ///< entity because a new stream has been initiated that conflicts with the existing stream. - UnknownStreamError, }; QXmppClient(QObject *parent = 0); @@ -196,7 +186,7 @@ public: const QVariant &arg9 = QVariant(), const QVariant &arg10 = QVariant() ); - QXmppClient::StreamError getXmppStreamError(); + QXmppStanza::Error::Condition getXmppStreamError(); QXmppLogger *logger(); void setLogger(QXmppLogger *logger); diff --git a/source/QXmppReconnectionManager.cpp b/source/QXmppReconnectionManager.cpp index 65557811..c89628de 100644 --- a/source/QXmppReconnectionManager.cpp +++ b/source/QXmppReconnectionManager.cpp @@ -51,7 +51,7 @@ void QXmppReconnectionManager::error(QXmppClient::Error error) if(m_client && error == QXmppClient::XmppStreamError) { // if we receive a resource conflict, inhibit reconnection - if(m_client->getXmppStreamError() == QXmppClient::ConflictStreamError) + if(m_client->getXmppStreamError() == QXmppStanza::Error::Conflict) m_receivedConflict = true; } else if(m_client && error == QXmppClient::SocketError && !m_receivedConflict) diff --git a/source/QXmppStream.cpp b/source/QXmppStream.cpp index 953fcaf2..62b9d66a 100644 --- a/source/QXmppStream.cpp +++ b/source/QXmppStream.cpp @@ -444,9 +444,9 @@ void QXmppStream::parser(const QByteArray& data) else if(ns == ns_stream && nodeRecv.tagName() == "error") { if (!nodeRecv.firstChildElement("conflict").isNull()) - m_xmppStreamError = QXmppClient::ConflictStreamError; + m_xmppStreamError = QXmppStanza::Error::Conflict; else - m_xmppStreamError = QXmppClient::UnknownStreamError; + m_xmppStreamError = QXmppStanza::Error::UndefinedCondition; emit error(QXmppClient::XmppStreamError); } else if(ns == ns_tls) @@ -485,6 +485,12 @@ void QXmppStream::parser(const QByteArray& data) } else if(nodeRecv.tagName() == "failure") { + if (!nodeRecv.firstChildElement("not-authorized").isNull()) + m_xmppStreamError = QXmppStanza::Error::NotAuthorized; + else + m_xmppStreamError = QXmppStanza::Error::UndefinedCondition; + emit error(QXmppClient::XmppStreamError); + warning("Authentication failure"); disconnect(); } @@ -1164,7 +1170,7 @@ QAbstractSocket::SocketError QXmppStream::getSocketError() return m_socketError; } -QXmppClient::StreamError QXmppStream::getXmppStreamError() +QXmppStanza::Error::Condition QXmppStream::getXmppStreamError() { return m_xmppStreamError; } diff --git a/source/QXmppStream.h b/source/QXmppStream.h index 493553b2..cc8f78e7 100644 --- a/source/QXmppStream.h +++ b/source/QXmppStream.h @@ -73,7 +73,7 @@ public: void sendPacket(const QXmppPacket&); QAbstractSocket::SocketError getSocketError(); - QXmppClient::StreamError getXmppStreamError(); + QXmppStanza::Error::Condition getXmppStreamError(); signals: // socket host found @@ -140,10 +140,9 @@ private: QString m_streamId; QString m_nonSASLAuthId; QString m_XMPPVersion; - QXmppClient::StreamError m_xmppStreamError; + QXmppStanza::Error::Condition m_xmppStreamError; QTimer *m_pingTimer; QTimer *m_timeoutTimer; -// m_xmppStanzaError; QXmppArchiveManager m_archiveManager; QXmppTransferManager m_transferManager; |
