Hi everyone,

I was talking about $SUBJ with Safa, the thing is - What should be the correct client's behaviour after Connection Manager sends <body> with <success> on successful SASL auth. XEP 0206 says client SHOULD send <body> with "to" and "xmpp:restart" attributes to CM, CM sends <stream:stream> to server and after receiving stream init response from XMPP server, CM "SHOULD forward any available features (or an empty element) to the client".

Now I'll be addressing client <-> CM traffic only. How I got to it is that Openfire built-in CM doesn't reply on <body> with "xmpp:restart" attr. It just acts like the BOSH session is already/still open, so ther is no need to send <body> with xmpp:restart. Resource bind or whatever can immediately follow.

On contrary, the ejabberd built-in CM demands <body> with xmpp:restart - if nonempty <body> without xmpp:restart follows after SASL <success> it answers with <body type=terminate> and session is over. However it replies on xmpp:restart like in the XEP and then session can continue - it even advertises some features in <stream:stream>.

Long story short, ejabberd follows the scenario in XEP 0206, Openfire doesn't need/do examples 10 and 11 (but those steps are conditioned by SHOULD):
http://www.xmpp.org/extensions/xep-0206.html#preconditions-sasl

So what is the correct behaviour after SASL auth?
I'm for the ejabberd way, stream restart after SASL IMO should happen - as for plain XMPP, there is a MUST (not SHOULD) in RFC 3290:
[...]
Upon receiving the <success/> element, the initiating entity MUST initiate a new stream by sending an opening XML stream header to the receiving entity (it is not necessary to send a closing </stream> tag first, since the receiving entity and initiating entity MUST consider the original stream to be closed upon sending or receiving the <success/> element). Upon receiving the new stream header from the initiating entity, the receiving entity MUST respond by sending a new XML stream header to the initiating entity, along with any available features
[...]

Regards,
Tomas Karasek

Reply via email to