[Standards] Client Acknowledgement of Subscription State Change Notifications

Robert McQueen robert.mcqueen at collabora.co.uk
Wed Mar 28 20:31:33 UTC 2007


Yann Le Boulanger wrote:
> Gajim acknowledge all presences. But we had problems with some servers,
> which run into a loop when doing this, so we had to detect those loop to
> disable the ack.
> This bring nothing to the client, it was just to be more RFC complient.

Telepathy also acknowledges the subscription state change <presence>
stanzas according to the RFC. Google's server seemed to be happy with
this, but we got bug reports of infinite looping when using our client
against jabber.org.

So, we also added a hack to prevent the looping which compares it to our
idea of the roster state, so if we've either received the <presence>
subscription notification once already (once around the loop), or we got
the roster node pushed to us first, we don't acknowledge it. Which isn't
quite RFC compliant because servers are can push the node to us before
the notification, but it didn't look like anyone really cared enough for
me to bother with a more elegant solution.

I'd +1 on losing it in the revised RFC, because it seems hard to
implement both correctly and compatibly.

On an obliquely related note, in response to a roster remove, I got sent
an ask="unsubscribe" roster item by (I think) ejabberd once, which
amused me...

Regards,
Rob



More information about the Standards mailing list