From 46f3831fd238b4c1fb10d44e4531d9e59d574c97 Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Sun, 22 Jan 2023 18:06:09 +0100 Subject: Use QXmppError in all IQ results instead of StanzaError This allows us to report different error types with more information and makes it possible to distinguish stanza errors and errors generated locally. Part of #501. --- src/base/QXmppFutureUtils_p.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/base/QXmppFutureUtils_p.h') diff --git a/src/base/QXmppFutureUtils_p.h b/src/base/QXmppFutureUtils_p.h index 5e6b5ca8..95150008 100644 --- a/src/base/QXmppFutureUtils_p.h +++ b/src/base/QXmppFutureUtils_p.h @@ -158,14 +158,15 @@ auto parseIq(Input &&sendResult, Converter convert) -> decltype(convert({})) IqType iq; iq.parse(element); if (iq.type() == QXmppIq::Error) { - return iq.error(); + if (auto err = iq.errorOptional()) { + return QXmppError { err->text(), std::move(*err) }; + } + return QXmppError { QStringLiteral("Unknown error.") }; } return convert(std::move(iq)); }, [](QXmppError error) -> Result { - using Error = QXmppStanza::Error; - return Error(Error::Wait, Error::UndefinedCondition, - QStringLiteral("Couldn't send request: ") + error.description); + return error; }, }, sendResult); -- cgit v1.2.3