aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-05-11 12:25:21 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-05-11 12:25:21 +0000
commit9d92efc86417fbefcd426d55fd70e5e7e20779ce (patch)
tree563280f7752248d3dc6d4e0f29735dd3599b764f
parentaa1c563caecb9b67171ff4415b2a1254a016917b (diff)
downloadqxmpp-9d92efc86417fbefcd426d55fd70e5e7e20779ce.tar.gz
report authentication errors
-rw-r--r--source/QXmppClient.cpp4
-rw-r--r--source/QXmppClient.h12
-rw-r--r--source/QXmppReconnectionManager.cpp2
-rw-r--r--source/QXmppStream.cpp12
-rw-r--r--source/QXmppStream.h5
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;