git » sdk » commit a74f415

Ping a MUC if it returns an error

author Stephen Paul Weber
2024-07-09 16:24:55 UTC
committer Stephen Paul Weber
2024-07-09 16:24:55 UTC
parent 4270b3e83b6351a12b6d56b840f72aac9cf5c819

Ping a MUC if it returns an error

Should do periodic pings eventually as well.

snikket/Client.hx +6 -0

diff --git a/snikket/Client.hx b/snikket/Client.hx
index 9fadc86..a930012 100644
--- a/snikket/Client.hx
+++ b/snikket/Client.hx
@@ -124,6 +124,12 @@ class Client extends EventEmitter {
 			final stanza:Stanza = event.stanza;
 			final from = stanza.attr.get("from") == null ? null : JID.parse(stanza.attr.get("from"));
 
+			if (stanza.attr.get("type") == "error" && from != null) {
+				final chat = getChat(from.asBare().asString());
+				final channel = Std.downcast(chat, Channel);
+				if (channel != null) channel.selfPing();
+			}
+
 			var fwd = null;
 			if (from != null && from.asBare().asString() == accountId()) {
 				var carbon = stanza.getChild("received", "urn:xmpp:carbons:2");