diff options
Diffstat (limited to 'protocols/jabber/message.c')
-rw-r--r-- | protocols/jabber/message.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/protocols/jabber/message.c b/protocols/jabber/message.c index 7c40f3e0..94ef8014 100644 --- a/protocols/jabber/message.c +++ b/protocols/jabber/message.c @@ -36,16 +36,17 @@ xt_status jabber_pkt_message(struct xt_node *node, gpointer data) if (!from) { return XT_HANDLED; /* Consider this packet corrupted. */ - } - if (request && id) { + + if (request && id && g_strcmp0(type, "groupchat") != 0) { /* Send a message receipt (XEP-0184), looking like this: - * <message - * from='kingrichard@royalty.england.lit/throne' - * id='bi29sg183b4v' - * to='northumberland@shakespeare.lit/westminster'> + * <message from='...' id='...' to='...'> * <received xmlns='urn:xmpp:receipts' id='richard2-4.1.247'/> - * </message> */ + * </message> + * + * MUC messages are excluded, since receipts aren't supposed to be sent over MUCs + * (XEP-0184 section 5.3) and replying to those may result in 'forbidden' errors. + */ struct xt_node *received, *receipt; received = xt_new_node("received", NULL, NULL); |