aboutsummaryrefslogtreecommitdiff
path: root/src/base
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2020-03-31 18:03:52 +0200
committerLNJ <lnj@kaidan.im>2020-03-31 19:16:36 +0200
commitf8ca81e3bef55fdf4737cf15c0444b7d1ddd68d6 (patch)
treeb2f3049f05215222cf43a8f5162cb493194dbca4 /src/base
parent067c7743b1c72d055a749a7611efd2f9026fe784 (diff)
downloadqxmpp-f8ca81e3bef55fdf4737cf15c0444b7d1ddd68d6.tar.gz
QXmppStanza: Add PolicyViolation error condition
The error condition as stanza error was added in RFC6120.
Diffstat (limited to 'src/base')
-rw-r--r--src/base/QXmppStanza.h6
-rw-r--r--src/base/QXmppStanza_p.h4
2 files changed, 9 insertions, 1 deletions
diff --git a/src/base/QXmppStanza.h b/src/base/QXmppStanza.h
index 43ae4375..a25a138e 100644
--- a/src/base/QXmppStanza.h
+++ b/src/base/QXmppStanza.h
@@ -143,7 +143,8 @@ public:
ServiceUnavailable, ///< The service is currently not available.
SubscriptionRequired, ///< The requester needs to subscribe first.
UndefinedCondition, ///< An undefined condition was hit.
- UnexpectedRequest ///< The request was unexpected.
+ UnexpectedRequest, ///< The request was unexpected.
+ PolicyViolation ///< The entity has violated a local server policy. \since QXmpp 1.3
};
Error();
@@ -234,4 +235,7 @@ private:
static uint s_uniqeIdNo;
};
+Q_DECLARE_METATYPE(QXmppStanza::Error::Type);
+Q_DECLARE_METATYPE(QXmppStanza::Error::Condition);
+
#endif // QXMPPSTANZA_H
diff --git a/src/base/QXmppStanza_p.h b/src/base/QXmppStanza_p.h
index a5a7aa0c..03875639 100644
--- a/src/base/QXmppStanza_p.h
+++ b/src/base/QXmppStanza_p.h
@@ -65,6 +65,8 @@ static QString strFromCondition(const QXmppStanza::Error::Condition& condition)
return "not-authorized";
case QXmppStanza::Error::PaymentRequired:
return "payment-required";
+ case QXmppStanza::Error::PolicyViolation:
+ return "policy-violation";
case QXmppStanza::Error::RecipientUnavailable:
return "recipient-unavailable";
case QXmppStanza::Error::Redirect:
@@ -116,6 +118,8 @@ static QXmppStanza::Error::Condition conditionFromStr(const QString& string)
return QXmppStanza::Error::NotAuthorized;
else if (string == "payment-required")
return QXmppStanza::Error::PaymentRequired;
+ else if (string == "policy-violation")
+ return QXmppStanza::Error::PolicyViolation;
else if (string == "recipient-unavailable")
return QXmppStanza::Error::RecipientUnavailable;
else if (string == "redirect")