aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppClient.cpp
diff options
context:
space:
mode:
authorMelvin Keskin <melvo@olomono.de>2022-01-23 19:07:14 +0100
committerLinus Jahn <lnj@kaidan.im>2022-02-02 15:32:49 +0100
commitd5bcf259944c8f48971f6fa6f13d603511d7c75f (patch)
tree2e22e432179f5428ffee6be7cff2eae6dd305c2d /src/client/QXmppClient.cpp
parent12ca0b777e8d28f228e086bd7cee5fc860867cde (diff)
Client: Fix 'send()' doesn't forward result from stream when using e2ee
Diffstat (limited to 'src/client/QXmppClient.cpp')
-rw-r--r--src/client/QXmppClient.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/client/QXmppClient.cpp b/src/client/QXmppClient.cpp
index b54f47fd..ebb6bd70 100644
--- a/src/client/QXmppClient.cpp
+++ b/src/client/QXmppClient.cpp
@@ -364,10 +364,12 @@ QFuture<QXmpp::SendResult> QXmppClient::send(QXmppStanza &&stanza)
await(future, this, [this, interface](std::variant<QByteArray, QXmpp::SendError> result) {
if (const auto *xml = std::get_if<QByteArray>(&result)) {
- d->stream->send(QXmppPacket(*xml, true, interface));
+ auto future = d->stream->send(QXmppPacket(*xml, true, interface));
+ await(future, this, [=](QXmpp::SendResult &&result) {
+ reportFinishedResult(*interface, result);
+ });
} else {
- interface->reportResult(std::get<QXmpp::SendError>(result));
- interface->reportFinished();
+ reportFinishedResult(*interface, { std::get<QXmpp::SendError>(result) });
}
});