git » sdk » commit adcecef

MAM id can be from=barejid

author Stephen Paul Weber
2023-07-26 19:48:41 UTC
committer Stephen Paul Weber
2023-07-26 19:48:41 UTC
parent 593a4d0720d076fc721297f8210e76cdec64d5b9

MAM id can be from=barejid

xmpp/ChatMessage.hx +6 -4

diff --git a/xmpp/ChatMessage.hx b/xmpp/ChatMessage.hx
index a7efe38..e23ea24 100644
--- a/xmpp/ChatMessage.hx
+++ b/xmpp/ChatMessage.hx
@@ -34,19 +34,21 @@ class ChatMessage {
 
 	public function new() { }
 
-	public static function fromStanza(stanza:Stanza, localJid:String):Null<ChatMessage> {
+	public static function fromStanza(stanza:Stanza, localJidStr:String):Null<ChatMessage> {
 		var msg = new ChatMessage();
 		msg.text = stanza.getChildText("body");
 		msg.to = stanza.attr.get("to");
 		msg.from = stanza.attr.get("from");
-		final domain = JID.parse(localJid).domain;
+		final localJid = JID.parse(localJidStr);
+		final localJidBare = localJid.asBare();
+		final domain = localJid.domain;
 		for (stanzaId in stanza.allTags("stanza-id", "urn:xmpp:sid:0")) {
-			if (stanzaId.attr.get("by") == domain) {
+			if (stanzaId.attr.get("by") == domain || stanzaId.attr.get("by") == localJidBare.asString()) {
 				msg.serverId = stanzaId.attr.get("id");
 				break;
 			}
 		}
-		msg.direction = (msg.to == localJid) ? MessageReceived : MessageSent;
+		msg.direction = (JID.parse(msg.to).asBare().asString() == localJidBare.asString()) ? MessageReceived : MessageSent;
 
 		if (msg.text == null) return null;