[jdev] XEP-0153 Avatars conflict with several resources

Alban Crequy alban.crequy at collabora.co.uk
Wed Sep 23 06:16:15 CDT 2009


Le Tue, 22 Sep 2009 12:58:03 -0700,
Justin Karneges <justin-keyword-jabber.093179 at affinix.com> a écrit :

> On Tuesday 22 September 2009 12:43:22 Robert Quattlebaum wrote:
> > I know google talk does this, or something similar. I believe they
> > do this because they found several clients which were not properly
> > calculating the hash or the image in te vCard.
> 
> It also has the nice effect of making your avatar continue to work
> even if you use a client that does not support avatars (e.g.
> temporarily using a mobile client or something).

I also noticed that Google Jabber servers add the photo hash in the
presence stanza. I think fixing the hash when the client wrongly
calculate the hash may be fine.

But adding a <photo> node with a hash when the client choose to not
include the hash is wrong because I believe it breaks the avatar
conflict resolution when there is several resources.

I have seen infinite loops of presence sending and vCard requests. At
some point, the iq stanza to request the vCard reaches a quota and I
receive the error:

<error code="500" type="wait"><resource-constraint
xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error>

But the infinite loop does not stop because the Jabber client ignore
the error and just do nothing (the client probably needs to implement a
timer). Then the server push a new <presence> stanza with again a
photo hash, although no client put a photo hash in their presence, so
the client enters into the avatar conflict resolution by pushing a
presence stanza without photo, and trying to download the vCard again...

-- 
Alban


More information about the JDev mailing list