summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClombrong <clombrong@egregore.fun>2025-05-08 21:16:28 +0200
committerClombrong <cromblong@egregore.fun>2025-05-08 21:16:28 +0200
commit7a5da788b661ea9efeb92d060b2bb8f4923a7e0d (patch)
treea2d9c84f836d77bc4193bdd7c6c1a89f041eb5b6
parent9e315fd0223d56347db74f0f03dc7f853dd44ce4 (diff)
feat: add open and close stanzas
-rw-r--r--portal/lib/portal_ws.ml10
1 files changed, 10 insertions, 0 deletions
diff --git a/portal/lib/portal_ws.ml b/portal/lib/portal_ws.ml
index f8fb4a9..0b21f4b 100644
--- a/portal/lib/portal_ws.ml
+++ b/portal/lib/portal_ws.ml
@@ -7,6 +7,16 @@ let sjs = Js.to_string
(* sic. XEP-0156: "host-meta files MUST be fetched only over HTTPS". I don't make the rules. *)
let well_known_of (domain : string) = "https://" ^ domain ^ "/.well-known/host-meta"
+let stanza_open domain =
+ (** [open_stanza domain] is an <open /> stanza for [domain]. *)
+ Printf.sprintf
+ {|<open xmlns="urn:ietf:params:xml:ns:xmpp-framing"
+ to="%s"
+ version="1.0" />|}
+ domain
+
+let stanza_close = {|<close xmlns="urn:ietf:params:xml:ns:xmpp-framing" />|}
+
let ws_endpoint (domain : string) =
(** [ws_endpoint domain] is a promise containing the XMPP websocket endpoint associated with [domain], by using the
domain's Web-host Metadata.