On Mon Oct  6 12:07:45 2008, Pedro Melo wrote:

On Oct 5, 2008, at 11:42 PM, Dave Cridland wrote:

On Sun Oct  5 10:33:46 2008, Jonathan Schleifer wrote:
How does replacing the resource work? I thought <conflict/> was issued
if the resource was in use.
If you get a conflict, you can continue and replace the old resource. IIRC, with the current RFC, it's undefined what the server does then, but most replace it. This should be clearified IMO so that the RFC says it should be replaced then.

FWIW, we conflict. I have some ideas for how to do replacement sensibly, but terminating a live client means risking the ping-pong effect that server administrators hate.

Sure, but such client is broken if he does not respect the stream error condition <conflict />.

A proper client, if he receives a <conflict /> stream error MUST NOT reconnect.

Unfortunately MUST NOT does not reprogram existing implementations and deployments. Would that it could. :-)

Instead, I think the solution is to, when a conflict case is found, to ping the existing session, terminate it if it does not respond quickly, and return a conflict to the new session if not.

Essentially, avoid terminating "real" sessions with a <conflict/>.

Presumably, the user is either in front of the new session, or else doesn't care.

Luckily, all this is largely a QOI issue, and is orthogonal to whether servers SHOULD NOT, MAY, or SHOULD respect a client requesting a specific resource.

Dave.
--
Dave Cridland - mailto:[EMAIL PROTECTED] - xmpp:[EMAIL PROTECTED]
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade

Reply via email to