From 013b388896315c7ac10e6cd7d36f913559998f83 Mon Sep 17 00:00:00 2001 From: fiaxh Date: Thu, 5 Mar 2020 12:21:43 +0100 Subject: Make message sending async and set unsent on error --- xmpp-vala/src/module/message/module.vala | 7 +++---- xmpp-vala/src/module/xep/0045_muc/module.vala | 4 ++-- xmpp-vala/src/module/xep/0085_chat_state_notifications.vala | 2 +- xmpp-vala/src/module/xep/0184_message_delivery_receipts.vala | 2 +- xmpp-vala/src/module/xep/0333_chat_markers.vala | 2 +- 5 files changed, 8 insertions(+), 9 deletions(-) (limited to 'xmpp-vala') diff --git a/xmpp-vala/src/module/message/module.vala b/xmpp-vala/src/module/message/module.vala index 5ddbbe1a..5f7d40f0 100644 --- a/xmpp-vala/src/module/message/module.vala +++ b/xmpp-vala/src/module/message/module.vala @@ -14,10 +14,9 @@ namespace Xmpp { public signal void received_message(XmppStream stream, MessageStanza message); public signal void received_message_unprocessed(XmppStream stream, MessageStanza message); - public void send_message(XmppStream stream, MessageStanza message) { - send_pipeline.run.begin(stream, message, (obj, res) => { - stream.write(message.stanza); - }); + public async void send_message(XmppStream stream, MessageStanza message) throws IOStreamError { + yield send_pipeline.run(stream, message); + yield stream.write_async(message.stanza); } public async void received_message_stanza_async(XmppStream stream, StanzaNode node) { diff --git a/xmpp-vala/src/module/xep/0045_muc/module.vala b/xmpp-vala/src/module/xep/0045_muc/module.vala index 79fd2c31..59cb703e 100644 --- a/xmpp-vala/src/module/xep/0045_muc/module.vala +++ b/xmpp-vala/src/module/xep/0045_muc/module.vala @@ -131,7 +131,7 @@ public class Module : XmppStreamModule { message.to = jid; message.type_ = MessageStanza.TYPE_GROUPCHAT; message.stanza.put_node((new StanzaNode.build("subject")).put_node(new StanzaNode.text(subject))); - stream.get_module(MessageModule.IDENTITY).send_message(stream, message); + stream.get_module(MessageModule.IDENTITY).send_message.begin(stream, message); } public void change_nick(XmppStream stream, Jid jid, string new_nick) { @@ -151,7 +151,7 @@ public class Module : XmppStreamModule { StanzaNode invite_node = new StanzaNode.build("x", NS_URI_USER).add_self_xmlns() .put_node(new StanzaNode.build("invite", NS_URI_USER).put_attribute("to", jid.to_string())); message.stanza.put_node(invite_node); - stream.get_module(MessageModule.IDENTITY).send_message(stream, message); + stream.get_module(MessageModule.IDENTITY).send_message.begin(stream, message); } public void kick(XmppStream stream, Jid jid, string nick) { diff --git a/xmpp-vala/src/module/xep/0085_chat_state_notifications.vala b/xmpp-vala/src/module/xep/0085_chat_state_notifications.vala index 7c1c9172..bf7515cb 100644 --- a/xmpp-vala/src/module/xep/0085_chat_state_notifications.vala +++ b/xmpp-vala/src/module/xep/0085_chat_state_notifications.vala @@ -27,7 +27,7 @@ public class Module : XmppStreamModule { MessageProcessingHints.set_message_hint(message, MessageProcessingHints.HINT_NO_STORE); - stream.get_module(MessageModule.IDENTITY).send_message(stream, message); + stream.get_module(MessageModule.IDENTITY).send_message.begin(stream, message); } public override void attach(XmppStream stream) { diff --git a/xmpp-vala/src/module/xep/0184_message_delivery_receipts.vala b/xmpp-vala/src/module/xep/0184_message_delivery_receipts.vala index b51178c7..199cfee8 100644 --- a/xmpp-vala/src/module/xep/0184_message_delivery_receipts.vala +++ b/xmpp-vala/src/module/xep/0184_message_delivery_receipts.vala @@ -12,7 +12,7 @@ namespace Xmpp.Xep.MessageDeliveryReceipts { MessageStanza received_message = new MessageStanza(); received_message.to = from; received_message.stanza.put_node(new StanzaNode.build("received", NS_URI).add_self_xmlns().put_attribute("id", message_id)); - stream.get_module(MessageModule.IDENTITY).send_message(stream, received_message); + stream.get_module(MessageModule.IDENTITY).send_message.begin(stream, received_message); } public static bool requests_receipt(MessageStanza message) { diff --git a/xmpp-vala/src/module/xep/0333_chat_markers.vala b/xmpp-vala/src/module/xep/0333_chat_markers.vala index 257f6967..7f92fbe3 100644 --- a/xmpp-vala/src/module/xep/0333_chat_markers.vala +++ b/xmpp-vala/src/module/xep/0333_chat_markers.vala @@ -21,7 +21,7 @@ public class Module : XmppStreamModule { received_message.to = jid; received_message.type_ = type_; received_message.stanza.put_node(new StanzaNode.build(marker, NS_URI).add_self_xmlns().put_attribute("id", message_id)); - stream.get_module(MessageModule.IDENTITY).send_message(stream, received_message); + stream.get_module(MessageModule.IDENTITY).send_message.begin(stream, received_message); } public static bool requests_marking(MessageStanza message) { -- cgit v1.2.3-70-g09d2