diff --git a/xep-0389.xml b/xep-0389.xml index a95c8ffa..6f9d81b0 100644 --- a/xep-0389.xml +++ b/xep-0389.xml @@ -31,6 +31,14 @@ ibr2 &sam; + + 0.6.0 + 2020-11-17 + ssw + +

Error out if a client selects an invalid flow

+
+
0.5.0 2020-05-26 @@ -363,7 +371,7 @@ If an entity supports issuing challenges but does not provide any flows after stream negotiation is complete it MUST respond with an empty list. Similarly, an entity that supports this specification but does not support - issuign challenges itself (for example, a client that only supports + issuing challenges itself (for example, a client that only supports receiving challenges) it MUST respond successfully with an empty list.

]]> - +

A client selects the registration or recovery feature for negotiation by replying with an element of the same name and namespace. @@ -384,6 +392,19 @@ ]]> +

+ If during stream initialization the client attempts to select a flow that + does not match one of the flows sent by the server, the server MUST + respond with an "undefined-condition" stream error containing an + "invalid-flow" application error qualified by the 'urn:xmpp:register:0' + namespace. +

+ + + + +]]>

If the client is initiating registration or recovery after a stream has already been initiated it uses the same registration element wrapped in an @@ -396,7 +417,21 @@ ]]>

- The server then replies to the IQ or feature selection with a challenge. + If the client attempts to select a flow that does not match one of the + flows sent by the server in response to an IQ after stream initialization + the server MUST respond with a stanza error of type "item-not-found". +

+ + + + +]]> +
+ +

+ If a valid flow is selected by the client the server then replies to the + IQ or feature selection with a challenge. If replying to an IQ, the challenge must be wrapped in an IQ of type "result". Challenges take the form of a <challenge/> element qualified by the