Re: draft-cridland-xmpp-session-00
Ralph Meijer <[email protected]> Tue, 10 Jun 2014 09:19:50 +0200
| Newsgroups | gmane.ietf.xmpp |
|---|---|
| Message-ID | <[email protected]> |
On 2014-06-10 05:44, Curtis King wrote: > > On Jun 9, 2014, at 9:54 AM, Dave Cridland <[email protected]> wrote: > >> On 9 June 2014 17:36, Curtis King <[email protected]> wrote: >> Instead of adding an redundant flag into the XMPP spec. Why doesn’t this draft state the <optional/> flag explicit and give the session as an example? Otherwise we will be adding <optional/> to more features than session. >> >> We've discussed, and rejected, this before, for example: >> >> http://www.ietf.org/mail-archive/web/xmpp/current/msg02403.html >> http://www.ietf.org/mail-archive/web/xmpp/current/msg01125.html >> >> I'm not averse to reopening the discussion, though I'll still argue against it. One or other of a generic <optional/> and <required/> will always be redundant, and multiple <required/> elements will often conflict. >> >> In any case, you'll note that <optional/> in this instance doesn't really mean "optional" so much as "redundant" - in fact, I think the name is an artifact of the discussion we had back then, though I can't find the thread that proposes it in this case. (But both M-Link and Prosody do this, so I assume it was discussed sometime). > > It was in the 3921bis draft then removed. BTW, we are about to remove it from M-Link because it isn’t covered in any RFC or XEP. > > This draft will require servers and client changes, you could accomplish the same goal by a pure informational draft pointing such features are optional. Then only certain clients need to change. Note: Good clients like Swift already ignore the session feature. > > If you think it is clearer using a flag lets use a descriptive flag name like, rfc3921-compatibility. The problem is that RFC 3921 said that you MUST negotiate Session Establishment when advertised by the server [1]. RFC 6121 then had it completely removed. While RFC 6120 says that by default stream features are optional to negotiate, this one wasn't. I think the idea is that if you do implement this flag (like Prosody and M-Link), we know for certain that the server does indeed no longer require Session Establishment. If a client *requires* changes, this is because it has a bug: negotiating session establishment while it has not been advertised. This particular flag just makes it possible for a client to decide to not negotiate Session Management as an optimization. Eventually, when enough clients no longer show the above mentioned buggy behaviour, we can remove this protocol from servers entirely. [1] http://xmpp.org/rfcs/rfc3921.html#session -- ralphm