Ticket #190 (closed defect: fixed)

Opened 7 months ago

Last modified 7 months ago

Server handles IQ with full JID in 'to' attribute.

Reported by: skyrat Owned by: smoku
Priority: major Component: General
Version: 2.1.23 Keywords:
Cc: skyrat@… Tracforge_linkmap:
Blocking: Blocked By:

Description

This happens for example when using group chat (conference). I cannot obtain the information about myself.
I use Gajim 0.11.4 - the latest.

Got deeply into this and found that:
* the error comes when <iq to> equals <iq from> (which means that I am retrieving info about "myself" of course)

WORKING:
* the message sent by client is:
<iq to="rat@…/workXXXXX" type="get" id="890">
<vCard xmlns="vcard-temp" />
</iq>

* the message received from the server is:
<iq xmlns='jabber:client' id='890' from='rat@…/workXXXXX' to='skyrat@…/work' type='result'>

NON WORKING:
* the message sent by client is:
<iq to="rat@…/work" type="get" id="890">
<vCard xmlns="vcard-temp" />
</iq>

* the message received from the server is:
<iq xmlns='jabber:client' from='rat@…/work' id='890' type='error' to='rat@…/work'>
<error type='cancel' code='501'>
<feature-not-implemented xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>

Gajim is using just JID without resource for obtaining info about myself in account settings. So this WORKS because:
<iq from=rat@…> but
<iq to=rat@…/work>

In the group chat Gajim sends the string which matches and server returns error.

Change History

Changed 7 months ago by smoku

  • status changed from new to closed
  • resolution set to invalid

http://www.xmpp.org/extensions/xep-0054.html#sect-id2251433 : "A user may view another user's vCard by sending an IQ of type "get" to the other user's bare JID."

http://www.xmpp.org/rfcs/rfc3921.html#rules : "If the JID is of the form <user@domain/resource> and an available resource matches the full JID, the recipient's server MUST deliver the stanza to that resource. " So, this is your client answering "feature-not-implemented", not your server.

Please file a bug to Gajim.

Changed 7 months ago by skyrat

  • cc skyrat@… added

Yes, the first link describes this: Client must ask using bare JID. I will file this bug to Gajim.

What is wrong on the server side is the inconsistent behavior:
- if a different user asks for my vCard using JID in the form "user@server/resource", he will obtain the correct answer
- on the contrary, when I do the same, requesting the vCard of myself, the error occurs
* note: in both cases and both sides, the client is the same: Gajim 0.11.4

Changed 7 months ago by smoku

  • status changed from closed to new
  • resolution deleted
  • summary changed from Error retrieving vCard about myself. to Server handles IQ with full JID in 'to' attribute.

So, you say that jabberd does not follow the RFC3921 rule about full JID routing? OK. I will see into that.

Changed 7 months ago by smoku

  • status changed from new to accepted

Changed 7 months ago by smoku

  • status changed from accepted to closed
  • resolution set to fixed

In [570]: Do not handle vCard request destined to full JIDs. Fixes #190

Note: See TracTickets for help on using tickets.