[Standards] -

Peter Saint-Andre stpeter at jabber.org
Thu Jul 5 22:56:37 UTC 2007


Mridul Muralidharan wrote:

>> Now, a 'from' address of the full JID seems odd to me. What if I send an
>> IQ-set from one of my resources to another? Does that mean I can do
>> roster pushes directly from one resource to another without updating the
>> roster on the server? Does the server deliver the IQ-result packets from
>> all interested resources to the initiating resource for the roster set?
>> That seems wrong to me (i.e., I think it's a spec bug in RFC 3921).
>>
>> A bare JID makes more sense because IQs sent to the bare JID are handled
>> by the server. But in that case, the server can't perform the usual
>> swapping of 'from' and 'to' addresses anyway, so it seems easier to not
>> include the 'from' address.
>>
> In our case, server handles roster iq's, irrespective of destination
> specified in stanza and will always be processed for the sender.

Here's what I'm talking about:

1. res1 sends a roster set:

<iq from='user at host/res1' type='set'>
  <query xmlns='jabber:iq:roster'>.....</query>
</iq>

2. Server processes the set and sends out roster pushes to res1, res2,
and res3:

<iq from='user at host/res1' to='user at host/res1' type='set'>
  <query xmlns='jabber:iq:roster'>.....</query>
</iq>

<iq from='user at host/res1' to='user at host/res2' type='set'>
  <query xmlns='jabber:iq:roster'>.....</query>
</iq>

<iq from='user at host/res1' to='user at host/res3' type='set'>
  <query xmlns='jabber:iq:roster'>.....</query>
</iq>

3. In accordance with RFC 3920 and RFC 3921, all three resources process
the roster push and return IQ-result:

<iq from='user at host/res1' to='user at host/res1' type='result'>
  <query xmlns='jabber:iq:roster'>.....</query>
</iq>

<iq from='user at host/res2' to='user at host/res1' type='result'>
  <query xmlns='jabber:iq:roster'>.....</query>
</iq>

<iq from='user at host/res3' to='user at host/res1' type='result'>
  <query xmlns='jabber:iq:roster'>.....</query>
</iq>

4. In accordance with RFC 3920, server routes all three IQ-results to
res1 -- it does not process them itself because IQs addressed to full
JIDs are delivered to the client, not processed by the server. So as a
result, the client running at res1 receives 3 IQ-results.

Is that desired behavior? I think not. The server doesn't process the
IQ-results (were they received?) and the res1 client is going to be
confused.

Or so it seems to me.

I say we didn't specify this fully or carefully enough in RFC 3921 and
should fix it.

Peter

-- 
Peter Saint-Andre
XMPP Standards Foundation
http://www.xmpp.org/xsf/people/stpeter.shtml

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 7354 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://mail.jabber.org/pipermail/standards/attachments/20070705/1c750497/attachment.bin>


More information about the Standards mailing list