Jiří Zárevúcký wrote: >> Let's assume that connection was broken and client got 307 but not 308, >> client does not know version 307 at the moment, as it *does* *not* know >> that bill@ has subscription="to". That's why I name the set of stanzas a >> "transaction" and that's why I'm against of processing interim roster >> pushes until client has received all pushes. > > That's what I was talking about earlier, isn't it?
Excuse me, I misread your original message. You're right, that's exactly the same situation. >> XEP-0237 does not state that server should send "final state of all >> touched roster items", it should send "the final result of all changes >> applied" and the result may be understood as the difference. > > that's also the reason for the ultra-rare corner case I posted earlier. > > Changing the definition to "final state of all touched roster items" > as you suggest will solve every possible problem and allow us to treat > interim pushes as normal ones. Right, it will also eliminate the problem with empty difference between two roster versions — the difference will be always non-empty. This solution increases amount of traffic a bit, but I don't think that the corner case really deserves extra optimization. -- WBRBW, Leonid Evdokimov
signature.asc
Description: OpenPGP digital signature