From f4920de85f08668b7c21617d3fcfa0082ea7885a Mon Sep 17 00:00:00 2001 From: Clombrong Date: Tue, 10 Jun 2025 02:09:21 +0200 Subject: feat(auth): use streams directly for send_auth_stanza --- lib/auth.ml | 6 ++++-- test/js/websockets_hello.ml | 5 ++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/auth.ml b/lib/auth.ml index 3287f91..75c2552 100644 --- a/lib/auth.ml +++ b/lib/auth.ml @@ -1,6 +1,6 @@ type auth_mechanism = PLAIN [@@deriving show { with_path = false }] -let send_auth_stanza (_stream, _push) jid pass mechanism = +let send_auth_stanza (stream, push) jid pass mechanism = let gen_auth = function | PLAIN -> Base64.encode_exn ("\x00" ^ jid ^ "\x00" ^ pass) in let xmlns = "urn:ietf:params:xml:ns:xmpp-sasl" in @@ -10,4 +10,6 @@ let send_auth_stanza (_stream, _push) jid pass mechanism = (("", "mechanism"), show_auth_mechanism mechanism)]); `Text [gen_auth mechanism]; `End_element] - in Markup.(stanza_list |> of_list |> write_xml |> to_string) + in Markup.(stanza_list |> of_list |> write_xml |> to_string) |> Option.some |> push; + (* TODO: use stream result for exceptions, etc. *) + Lwt_stream.get stream diff --git a/test/js/websockets_hello.ml b/test/js/websockets_hello.ml index 3b48e16..8bc7487 100644 --- a/test/js/websockets_hello.ml +++ b/test/js/websockets_hello.ml @@ -21,10 +21,9 @@ let () = let domain = "egregore.fun" in let* stream, push = Stream.start domain in let* _stream = Lwt_stream.get stream - in let _auth = Auth.send_auth_stanza (stream, push) + in let* _auth = Auth.send_auth_stanza (stream, push) "test@example.com" "password" Auth.PLAIN - in print_endline _auth; - push (Some "wrong"); + in push (Some "wrong"); let+ _recv = Lwt_stream.get stream in push None -- cgit v1.2.3