aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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) });
}
});