aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppFutureUtils_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/QXmppFutureUtils_p.h')
-rw-r--r--src/base/QXmppFutureUtils_p.h9
1 files changed, 5 insertions, 4 deletions
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);