summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClombrong <cromblong@egregore.fun>2025-06-26 16:41:40 +0200
committerClombrong <cromblong@egregore.fun>2025-06-26 21:40:53 +0200
commit3dd884417ad78993bf6f3dc59349f20bd3fddfa0 (patch)
treedc45971b5ea6c620cb03c554c310531b2ec9eac1
parent763187955aed2c6ff07eee5f31d413bef81075df (diff)
fix(stream): remove start function
-rw-r--r--lib/stream.ml12
-rw-r--r--test/hello.ml7
2 files changed, 5 insertions, 14 deletions
diff --git a/lib/stream.ml b/lib/stream.ml
index c817571..07bb21c 100644
--- a/lib/stream.ml
+++ b/lib/stream.ml
@@ -36,18 +36,6 @@ let get (stream : (signal, async) stream) : Xml.element Lwt.t =
| Some xml -> Lwt.return xml
| None -> Lwt.fail (InvalidStanza (signal |> write_xml |> to_string))
-(** [start domain] is a promise containing a Portal (stream * push) connected to the
- XMPP server [domain].
-
- Currently, it doesn't handle anything except the initial [<open/>] stanza. *)
-let start domain : Portal.t Lwt.t =
- let* stream, _push = Portal.connect domain
- in let push = function
- | None -> Portal.close (stream, _push);
- | anything -> _push anything
- in let+ _id = Portal.header domain (stream, _push)
- in stream, push
-
(** [parse_features el] is a [stream_features] record with all the features of the
[<stream:features>] stanza contained in [el]. *)
let parse_features (el : Xml.element) : stream_features =
diff --git a/test/hello.ml b/test/hello.ml
index b397727..a00eb2e 100644
--- a/test/hello.ml
+++ b/test/hello.ml
@@ -4,11 +4,13 @@ open! Flesh
let program (stream, push) config =
let+ _auth = Sasl.authenticate (stream, push) config
- in match _auth with
+ in begin match _auth with
| Error (NotAuthorized, Some (_, text)) -> print_endline ("Not authorized: " ^ text)
| Error (MalformedRequest, Some (_, text)) -> print_endline ("Malformed request: " ^ text)
| Error _ -> print_endline "Error!"
| Ok _ -> print_endline "Success!"
+ end;
+ Portal.close (stream, push)
let main =
let config : Sasl.auth_config = {
@@ -17,7 +19,8 @@ let main =
preferred_mechanisms = [Stream.PLAIN]
}
in let domain = (List.nth (String.split_on_char '@' config.jid) 1) in
- let* stream, push = Stream.start domain in
+ let* stream, push = Portal.connect domain in
+ let* _id = Portal.header domain (stream, push) in
Lwt.catch
(fun () -> program (stream, push) config >|= (fun () -> push None))
(fun exn ->