From 2598477229f7a7e0fba11ed0919e53f164ceb83c Mon Sep 17 00:00:00 2001 From: Tim-ats-d Date: Fri, 11 Nov 2022 14:37:35 +0100 Subject: [PATCH] Use Lwt.Syntax. --- .ocamlformat | 1 + lib/mehari.ml | 27 ++++++++++++++------------- 2 files changed, 15 insertions(+), 13 deletions(-) create mode 100644 .ocamlformat diff --git a/.ocamlformat b/.ocamlformat new file mode 100644 index 0000000..37525ae --- /dev/null +++ b/.ocamlformat @@ -0,0 +1 @@ +profile = default diff --git a/lib/mehari.ml b/lib/mehari.ml index 83cbbc0..a04a30b 100644 --- a/lib/mehari.ml +++ b/lib/mehari.ml @@ -1,3 +1,4 @@ +open Lwt.Syntax let cert = X509_lwt.private_of_pems @@ -8,47 +9,47 @@ let init_socket addr port = let sockaddr = Unix.ADDR_INET (addr, port) in let socket = Lwt_unix.socket Unix.PF_INET Unix.SOCK_STREAM 0 in Lwt_unix.setsockopt socket Unix.SO_REUSEADDR true; - let%lwt () = Lwt_unix.bind socket sockaddr in + let* () = Lwt_unix.bind socket sockaddr in Lwt.return socket let create_srv_socket addr port = - let%lwt socket = init_socket addr port in + let* socket = init_socket addr port in Lwt_unix.listen socket 10; Lwt.return socket let accept sock = - let%lwt (sock_cl, addr) = Lwt_unix.accept sock in + let* (sock_cl, addr) = Lwt_unix.accept sock in let ic = Lwt_io.of_fd ~close:(fun () -> Lwt.return_unit) ~mode:Lwt_io.input sock_cl in let oc = Lwt_io.of_fd ~close:(fun () -> Lwt.return_unit) ~mode:Lwt_io.output sock_cl in Lwt.return ((ic,oc), addr, sock_cl) let write oc buff = - let%lwt () = Lwt_io.write oc buff in + let* () = Lwt_io.write oc buff in Lwt_io.flush oc let read ic = - let%lwt buff = Lwt_io.read ic ~count:2048 in + let* buff = Lwt_io.read ic ~count:2048 in Printf.printf "%s%!" buff; Lwt.return buff -let rec serve handler sock certchain = - let%lwt (_, _, sock_cl) = accept sock in - let%lwt server = +let rec serve handler sock certchain = + let* (_, _, sock_cl) = accept sock in + let* server = Tls_lwt.Unix.server_of_fd (Tls.Config.server ~certificates:(`Single certchain) ()) sock_cl in let ic, oc = Tls_lwt.of_t server in - let%lwt () = handler ic oc in - let%lwt () = Tls_lwt.Unix.close_tls server in + let* () = handler ic oc in + let* () = Tls_lwt.Unix.close_tls server in serve handler sock certchain let start_server callback = let handle_request ic oc = - let%lwt buff = read ic in + let* buff = read ic in write oc @@ callback buff in - let%lwt sock = create_srv_socket Unix.inet_addr_loopback 1965 in - let%lwt certchain = cert in + let* sock = create_srv_socket Unix.inet_addr_loopback 1965 in + let* certchain = cert in serve handle_request sock certchain let run callback =