diff options
Diffstat (limited to 'src/base/QXmppFutureUtils_p.h')
| -rw-r--r-- | src/base/QXmppFutureUtils_p.h | 9 |
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); |
