diff options
| author | Linus Jahn <lnj@kaidan.im> | 2022-12-30 23:35:47 +0100 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2022-12-30 23:35:47 +0100 |
| commit | 6efebe555d30170c2ecfc2372113f342c513b0c2 (patch) | |
| tree | 146535dd164abe60d28a020a2680e17c0de2b055 /src/client/QXmppCarbonManagerV2.cpp | |
| parent | 93c35b3f1260f3dfafbc77609fcadb9a40a7b97f (diff) | |
| download | qxmpp-6efebe555d30170c2ecfc2372113f342c513b0c2.tar.gz | |
Replace QXmpp::SendError with QXmppError everywhere
Part of #501.
Diffstat (limited to 'src/client/QXmppCarbonManagerV2.cpp')
| -rw-r--r-- | src/client/QXmppCarbonManagerV2.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/client/QXmppCarbonManagerV2.cpp b/src/client/QXmppCarbonManagerV2.cpp index fa162612..1c3a6fcc 100644 --- a/src/client/QXmppCarbonManagerV2.cpp +++ b/src/client/QXmppCarbonManagerV2.cpp @@ -62,7 +62,7 @@ auto firstChildElement(const QDomElement &el, const char *tagName, const char *x return QDomElement(); } -auto parseIq(std::variant<QDomElement, SendError> &&sendResult) -> std::optional<QXmppStanza::Error> +auto parseIq(std::variant<QDomElement, QXmppError> &&sendResult) -> std::optional<QXmppError> { if (auto el = std::get_if<QDomElement>(&sendResult)) { auto iqType = el->attribute(QStringLiteral("type")); @@ -71,11 +71,13 @@ auto parseIq(std::variant<QDomElement, SendError> &&sendResult) -> std::optional } QXmppIq iq; iq.parse(*el); - return iq.error(); - } else if (auto err = std::get_if<SendError>(&sendResult)) { - using Error = QXmppStanza::Error; - return Error(Error::Wait, Error::UndefinedCondition, - QStringLiteral("Couldn't send request: ") + err->text); + if (auto error = iq.errorOptional()) { + return QXmppError { error->text(), std::move(*error) }; + } + // Only happens with IQs with type=error, but no <error/> element + return QXmppError { QStringLiteral("Unknown error received."), QXmppStanza::Error() }; + } else if (auto err = std::get_if<QXmppError>(&sendResult)) { + return *err; } return {}; } @@ -163,7 +165,7 @@ void QXmppCarbonManagerV2::enableCarbons() await(client()->sendIq(CarbonEnableIq()), this, [this](QXmppClient::IqResult domResult) { if (auto err = parseIq(std::move(domResult))) { - warning("Could not enable message carbons: " % err->text()); + warning("Could not enable message carbons: " % err->description); } else { info("Message Carbons enabled."); } |
