aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2015-02-25 09:00:17 +0100
committerJeremy Lainé <jeremy.laine@m4x.org>2015-02-25 09:00:17 +0100
commit02294cc0cf4e9a658da33e8d91896a4b6f2f9e8c (patch)
tree76f40c9e53658fe3f21e12b8be54762619a0955a /src
parentda64eae308158b4e0e8816a93d698823b4785b1a (diff)
downloadqxmpp-02294cc0cf4e9a658da33e8d91896a4b6f2f9e8c.tar.gz
clean up support for 'bad-auth' replies, see #36
Diffstat (limited to 'src')
-rw-r--r--src/base/QXmppStanza.cpp4
-rw-r--r--src/base/QXmppStanza.h3
-rw-r--r--src/client/QXmppOutgoingClient.cpp7
3 files changed, 5 insertions, 9 deletions
diff --git a/src/base/QXmppStanza.cpp b/src/base/QXmppStanza.cpp
index b840a06b..1e512145 100644
--- a/src/base/QXmppStanza.cpp
+++ b/src/base/QXmppStanza.cpp
@@ -291,8 +291,6 @@ QString QXmppStanza::Error::getConditionStr() const
return "undefined-condition";
case UnexpectedRequest:
return "unexpected-request";
- case BadAuth:
- return "bad-auth";
default:
return "";
}
@@ -360,8 +358,6 @@ void QXmppStanza::Error::setConditionFromStr(const QString& type)
setCondition(UndefinedCondition);
else if(type == "unexpected-request")
setCondition(UnexpectedRequest);
- else if(type == "bad-auth")
- setCondition(BadAuth);
else
setCondition(static_cast<QXmppStanza::Error::Condition>(-1));
}
diff --git a/src/base/QXmppStanza.h b/src/base/QXmppStanza.h
index d5cd205d..4583bcd3 100644
--- a/src/base/QXmppStanza.h
+++ b/src/base/QXmppStanza.h
@@ -125,8 +125,7 @@ public:
ServiceUnavailable,
SubscriptionRequired,
UndefinedCondition,
- UnexpectedRequest,
- BadAuth
+ UnexpectedRequest
};
Error();
diff --git a/src/client/QXmppOutgoingClient.cpp b/src/client/QXmppOutgoingClient.cpp
index cc14dbdf..f82ae807 100644
--- a/src/client/QXmppOutgoingClient.cpp
+++ b/src/client/QXmppOutgoingClient.cpp
@@ -538,10 +538,11 @@ void QXmppOutgoingClient::handleStanza(const QDomElement &nodeRecv)
QXmppSaslFailure failure;
failure.parse(nodeRecv);
- if (failure.condition() == "not-authorized")
+ // RFC3920 defines the error condition as "not-authorized", but
+ // some broken servers use "bad-auth" instead. We tolerate this
+ // by remapping the error to "not-authorized".
+ if (failure.condition() == "not-authorized" || failure.condition() == "bad-auth")
d->xmppStreamError = QXmppStanza::Error::NotAuthorized;
- else if (failure.condition() == "bad-auth")
- d->xmppStreamError = QXmppStanza::Error::BadAuth;
else
d->xmppStreamError = QXmppStanza::Error::UndefinedCondition;
emit error(QXmppClient::XmppStreamError);