The Bug is easy to fix. Either one off the two patches fixes it.
handle_message_without_type.diff only fixes the problem I reported,
while handle_all_unknown_types_as_normal.diff fixes the code, so that
it complies with the rfc section I mentioned before
Index: src/core/xmpp-protocol.c
===================================================================
RCS file: /cvs/irssi-xmpp/irssi-xmpp/src/core/xmpp-protocol.c,v
retrieving revision 1.54
diff -u -r1.54 xmpp-protocol.c
--- src/core/xmpp-protocol.c 5 Apr 2008 20:50:45 -0000 1.54
+++ src/core/xmpp-protocol.c 26 Apr 2008 06:50:24 -0000
@@ -350,6 +350,7 @@
}
}
+ case LM_MESSAGE_SUB_TYPE_NOT_SET:
case LM_MESSAGE_SUB_TYPE_HEADLINE:
case LM_MESSAGE_SUB_TYPE_NORMAL:
case LM_MESSAGE_SUB_TYPE_CHAT:
Index: src/core/xmpp-protocol.c
===================================================================
RCS file: /cvs/irssi-xmpp/irssi-xmpp/src/core/xmpp-protocol.c,v
retrieving revision 1.54
diff -u -r1.54 xmpp-protocol.c
--- src/core/xmpp-protocol.c 5 Apr 2008 20:50:45 -0000 1.54
+++ src/core/xmpp-protocol.c 26 Apr 2008 06:58:25 -0000
@@ -353,6 +353,13 @@
case LM_MESSAGE_SUB_TYPE_HEADLINE:
case LM_MESSAGE_SUB_TYPE_NORMAL:
case LM_MESSAGE_SUB_TYPE_CHAT:
+ /* rfc3921.txt states in 2.1.1. Types of Message:
+ * if an application receives a message with no 'type' attribute or the
+ * application does not understand the value of the 'type' attribute
+ * provided, it MUST consider the message to be of type "normal"
+ * Thus default belongs here, whre LM_MESSAGE_SUB_TYPE_NORMAL is
+ */
+ default:
/* XEP-0022: Message Events */
child = lm_message_node_get_child(msg->node, "x");
if (child != NULL) {
@@ -508,9 +515,6 @@
g_free(nick);
}
- break;
-
- default:
break;
}