Now I'm being bad and replying to 2 mails at once, sorry :)

On Thu, Apr 9, 2009 at 3:53 PM, Peter Saint-Andre <[email protected]> wrote:
> On 4/9/09 7:57 AM, Sachin Khandelwal wrote:
>> Let me elaborate this :
>> Consider user 'xmpp1'  uses two clients to login  (say one from home and one
>> from office). Currently 'xmpp1' has only one rosteritem 'xmpp2' and the 
>> roster
>> version is 316. Both the office client and home client are upgraded to 
>> version
>> 316. Now from office client user deletes the contact ( home client is not 
>> logged
>> in that time). Now when xmpp1 login from home client the response of roster
>> retrieval will be same as Example 4.
>>

No, xmpp1 at home will request the version it knows about... 316. The
server will reply with an empty 317, and also send a roster pushe for
the removal of the 316 contact. No?

>> Here my concern was how the client will come to know that the response is
>> actually a zero rosteritem (empty roster) condition and not that "the roster
>> changes will be sent later as interim roster pushes" as mentioned in sec 2.4.
>>

I don't think it has to know (though see above, since it I believe it
*will* know). It simply presents the roster it knows about, until it
receives further notice from the server (which will be the roster
pushes).

>> Also consider that the server is implemented to send the complete roster and
>> not the interim roster pushes.
>
> That's an interesting edge case. I'm not yet sure how to solve it.
> You're right that with roster versioning an empty <query/> element now
> can mean two different things. This requires further thought.
>

I wouldn't be opposed to making an empty roster explicit, or
preferably a non-empty roster explicit, e.g. some way to say "updates
are coming" or better "X updates are coming".

> Thinking out loud: perhaps if the roster is empty the server must not
> include the sequence number? Or some other notation that the roster is
> empty?
>

I'm not sure I like leaving out the sequence number. An empty roster
still has a version, that version needs to be known to keep track of
item deletions.

Matthew.

Reply via email to