mu-conference 0.7 delayed presence stanzas (w/ patch)
Garrett Kuchta <[email protected]>
| Newsgroups | gmane.network.jabber.admin |
|---|---|
| Message-ID | <[email protected]> |
Hi, After updating to mu-conference 0.7, I noticed I wasn't receiving presence messages from users when they joined a room. I tracked it down to mu-conference adding both XEP-0091 and XEP-0203 elements when constructing a presence stanza [see: jabberd/jutil.c : jutil_delay()], but only removing XEP-0091 [see conference_room.c : _con_user_enter()]. I submitted a bugreport and patch to the mu-conference project at https://gna.org/projects/mu-conference/ but it appears to be down at the moment. Has anyone encountered this before? Am I incorrect in seeing this as a bug? It only manifests in clients that ignore presence messages with with a delay element (e.g: Pidgin). Attached is a patch. Cheers. garrett _______________________________________________ JAdmin mailing list FAQ: http://www.jabber.org/discussion-lists/jadmin-faq Forum: http://www.jabberforum.org/forumdisplay.php?f=19 Info: http://mail.jabber.org/mailman/listinfo/jadmin Unsubscribe: [email protected] _______________________________________________
conference_user.patch
(text/x-diff, 870 B)
--- mu-conference_0.7/src/conference_user.c 2007-06-08 15:19:48.000000000 -0500
+++ mu-conference_0.7-patched/src/conference_user.c 2008-11-12 18:06:33.000000000 -0600
@@ -161,6 +161,12 @@ void _con_user_nick(gpointer key, gpoint
if(element)
xmlnode_hide(element);
+ /* Hide urn:xmpp:delay, not needed */
+ element = xmlnode_get_tag(node, "delay");
+ if(element)
+ xmlnode_hide(element);
+
+
xmlnode_put_attrib(node, "to", jid_full(to->realid));
fullid = jid_new(xmlnode_pool(node), jid_full(from->localid));
@@ -239,7 +245,12 @@ void _con_user_enter(gpointer key, gpoin
element = xmlnode_get_tag(node, "x?xmlns=jabber:x:delay");
if(element)
xmlnode_hide(element);
-
+
+ /* Hide urn:xmpp:delay */
+ element = xmlnode_get_tag(node, "delay");
+ if(element)
+ xmlnode_hide(element);
+
deliver(dpacket_new(node), NULL);
}