On 04/01/11 18:35, Justin Karneges wrote:
I think it's going to have to be (b). Clients assume a blank slate at session start, which is why the bare-jid unavailable works today in the way you'd expect. However, in general, I believe clients treat bare-jid presence as referring to a single session with a 0-length resource (residual effect of how legacy transports would send out resource-less presence). So, I would expect that existing behavior would be for the client to remove an empty session if it exists, but not to touch any other sessions.
As a conflicting data point: telepathy-gabble forgets about any resources' presence if it gets presence from a bare JID. (Presence of any type, not just unavailable; in practice this is essentially equivalent.)
So Gabble will basically behave identically with servers which do (a) or (b). I think in a perfect world servers doing (b) would be unnecessary.
I agree that dropping dups is fine. My feeling with presence is that it indicates an ongoing state. The stanza transmission alone is independent of this state. Similarly, it should be possible to intentionally replay presence without effect to that state (as servers already do).
I agree that dropping dups is fine, as long as they're exact dups. -- Will
