diff options
Diffstat (limited to 'xmpp-vala/src/module/xep/0272_muji.vala')
| -rw-r--r-- | xmpp-vala/src/module/xep/0272_muji.vala | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/xmpp-vala/src/module/xep/0272_muji.vala b/xmpp-vala/src/module/xep/0272_muji.vala index 8226da10..b287295c 100644 --- a/xmpp-vala/src/module/xep/0272_muji.vala +++ b/xmpp-vala/src/module/xep/0272_muji.vala @@ -56,9 +56,13 @@ namespace Xmpp.Xep.Muji { muji_node.put_node(content_node); } - Presence.Stanza presence_stanza = new Presence.Stanza() { to=muc_jid.with_resource(group_call.our_nick) }; - presence_stanza.stanza.put_node(muji_node); - stream.get_module(Presence.Module.IDENTITY).send_presence(stream, presence_stanza); + try { + Presence.Stanza presence_stanza = new Presence.Stanza() { to=muc_jid.with_resource(group_call.our_nick) }; + presence_stanza.stanza.put_node(muji_node); + stream.get_module(Presence.Module.IDENTITY).send_presence(stream, presence_stanza); + } catch (InvalidJidError e) { + error("Group call participant jid was invalid: %s", e.message); + } return group_call; } @@ -86,7 +90,12 @@ namespace Xmpp.Xep.Muji { GroupCall group_call = stream.get_flag(Flag.IDENTITY).calls[muc_jid]; group_call.waiting_for_finish_prepares[promise] = preparing_peers; - return yield promise.future.wait_async(); + try { + return yield promise.future.wait_async(); + } catch (FutureError e) { + warning("Failed waiting for preparing peers: %s", e.message); + return new ArrayList<Presence.Stanza>(); + } } private async void compute_payload_intersection(XmppStream stream, GroupCall group_call, string media) { |
