From 8fb357d9a61c6a939cdf26496443ada5b4a762ee Mon Sep 17 00:00:00 2001 From: Guus der Kinderen Date: Wed, 21 Aug 2024 20:47:37 +0200 Subject: [PATCH] XEP-0198: Clarify server enabling SM without requested resumption When a client requests stream management to be enabled and asks for stream resumption, it's not unreasonable for people to assume that the server may 'fail' the request if it doesn't offer the requested resumption. The pre-existing test does allow the server to enable SM _without_ the requested resumption feature, but isn't overly clear. This commit adds an example clarifying this scenario. --- xep-0198.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/xep-0198.xml b/xep-0198.xml index c4544f30..1c2f4874 100644 --- a/xep-0198.xml +++ b/xep-0198.xml @@ -30,6 +30,12 @@ &dcridland; &mwild; &tmolitor; + + 1.6.2 + 2024-09-24 + gk +

Clarify server enabling stream management without requested resume functionality.

+
1.6.1 2022-10-05 @@ -365,6 +371,9 @@

If the server will allow the stream to be resumed, it MUST include a 'resume' attribute set to "true" or "1" on the <enabled/> element and MUST include an 'id' attribute that specifies an identifier for the stream.

+]]> + ]]>

Definition: The 'id' attribute defines a unique identifier for purposes of stream management (an "SM-ID"). The SM-ID MUST be generated by the server. The client MUST consider the SM-ID to be opaque and therefore MUST NOT assign any semantic meaning to the SM-ID. The server MAY encode any information it deems useful into the SM-ID, such as the full JID &LOCALFULL; of a connected client (e.g., the full JID plus a nonce value). Any characters allowed in an XML attribute are allowed. The SM-ID MUST NOT be reused for simultaneous or subsequent sessions (but the server need not ensure that SM-IDs are unique for all time, only for as long as the server is continuously running). The SM-ID SHOULD NOT be longer than 4000 bytes.

As noted, the <enabled/> element MAY include a 'location' attribute that specifies the server's preferred location for reconnecting (e.g., a particular connection manager that hold session state for the connected client).