about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/xmpp/message.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/xmpp/message.c b/src/xmpp/message.c
index 55f332b2..09863b63 100644
--- a/src/xmpp/message.c
+++ b/src/xmpp/message.c
@@ -1004,17 +1004,19 @@ _handle_carbons(xmpp_stanza_t *const stanza)
         message->encrypted = xmpp_stanza_get_text(x);
     }
 
-    // if we are the recipient, treat as standard incoming message
-    if (g_strcmp0(my_jid->barejid, jid_to->barejid) == 0) {
-        jid_destroy(jid_to);
-        message->jid = jid_from;
-        sv_ev_incoming_carbon(message);
-
-    // else treat as a sent message
-    } else {
-        jid_destroy(jid_from);
-        message->jid = jid_to;
-        sv_ev_outgoing_carbon(message);
+    if (message->plain || message->encrypted || message->body) {
+        // if we are the recipient, treat as standard incoming message
+        if (g_strcmp0(my_jid->barejid, jid_to->barejid) == 0) {
+            jid_destroy(jid_to);
+            message->jid = jid_from;
+            sv_ev_incoming_carbon(message);
+
+        // else treat as a sent message
+        } else {
+            jid_destroy(jid_from);
+            message->jid = jid_to;
+            sv_ev_outgoing_carbon(message);
+        }
     }
 
     message_free(message);