From d685010e8679907735d9706991e83efa89f91efe Mon Sep 17 00:00:00 2001 From: Pau Ruiz Safont Date: Wed, 14 Dec 2022 16:23:00 +0000 Subject: [PATCH] conduit-lwt-unix: do not use directly the Ssl module Instead create an alias to the types needed in conduit_lwt_unix_ssl modules and use the alias. Signed-off-by: Pau Ruiz Safont --- src/conduit-lwt-unix/conduit_lwt_unix.ml | 2 +- src/conduit-lwt-unix/conduit_lwt_unix.mli | 2 +- src/conduit-lwt-unix/conduit_lwt_unix_ssl.dummy.ml | 5 ++++- src/conduit-lwt-unix/conduit_lwt_unix_ssl.dummy.mli | 9 ++++++--- src/conduit-lwt-unix/conduit_lwt_unix_ssl.real.ml | 2 ++ src/conduit-lwt-unix/conduit_lwt_unix_ssl.real.mli | 7 +++++-- 6 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/conduit-lwt-unix/conduit_lwt_unix.ml b/src/conduit-lwt-unix/conduit_lwt_unix.ml index 20e2faf5..ef53d46c 100644 --- a/src/conduit-lwt-unix/conduit_lwt_unix.ml +++ b/src/conduit-lwt-unix/conduit_lwt_unix.ml @@ -109,7 +109,7 @@ type ctx = { tls_own_key : tls_own_key; tls_authenticator : Conduit_lwt_tls.X509.authenticator; ssl_client_verify : Conduit_lwt_unix_ssl.Client.verify; - ssl_ctx : Ssl.context; + ssl_ctx : Conduit_lwt_unix_ssl.Client.context; } let string_of_unix_sockaddr sa = diff --git a/src/conduit-lwt-unix/conduit_lwt_unix.mli b/src/conduit-lwt-unix/conduit_lwt_unix.mli index e95ac50c..8e465340 100644 --- a/src/conduit-lwt-unix/conduit_lwt_unix.mli +++ b/src/conduit-lwt-unix/conduit_lwt_unix.mli @@ -161,7 +161,7 @@ val init : ?src:string -> ?tls_own_key:tls_own_key -> ?tls_authenticator:Conduit_lwt_tls.X509.authenticator -> - ?ssl_ctx:Ssl.context -> + ?ssl_ctx:Conduit_lwt_unix_ssl.Client.context -> ?ssl_client_verify:Conduit_lwt_unix_ssl.Client.verify -> unit -> ctx io diff --git a/src/conduit-lwt-unix/conduit_lwt_unix_ssl.dummy.ml b/src/conduit-lwt-unix/conduit_lwt_unix_ssl.dummy.ml index 784121c0..04c7c20c 100644 --- a/src/conduit-lwt-unix/conduit_lwt_unix_ssl.dummy.ml +++ b/src/conduit-lwt-unix/conduit_lwt_unix_ssl.dummy.ml @@ -19,7 +19,10 @@ module Client = struct type verify = { hostname : bool; ip : bool } let default_verify = { hostname = true; ip = true } - let default_ctx = `Ssl_not_available + + type context = Ssl_not_available + + let default_ctx = Ssl_not_available let create_ctx ?certfile:_ ?keyfile:_ ?password:_ () = default_ctx let connect ?(ctx = default_ctx) ?src:_ ?hostname:_ ?ip:_ ?verify:_ _sa = diff --git a/src/conduit-lwt-unix/conduit_lwt_unix_ssl.dummy.mli b/src/conduit-lwt-unix/conduit_lwt_unix_ssl.dummy.mli index 407e76a3..c490cc6f 100644 --- a/src/conduit-lwt-unix/conduit_lwt_unix_ssl.dummy.mli +++ b/src/conduit-lwt-unix/conduit_lwt_unix_ssl.dummy.mli @@ -21,17 +21,20 @@ module Client : sig type verify = { hostname : bool; ip : bool } val default_verify : verify - val default_ctx : [ `Ssl_not_available ] + + type context = Ssl_not_available + + val default_ctx : context val create_ctx : ?certfile:string -> ?keyfile:string -> ?password:(bool -> string) -> unit -> - [ `Ssl_not_available ] + context val connect : - ?ctx:[ `Ssl_not_available ] -> + ?ctx:context -> ?src:Lwt_unix.sockaddr -> ?hostname:string -> ?ip:Ipaddr.t -> diff --git a/src/conduit-lwt-unix/conduit_lwt_unix_ssl.real.ml b/src/conduit-lwt-unix/conduit_lwt_unix_ssl.real.ml index bc37ec28..d0a524eb 100644 --- a/src/conduit-lwt-unix/conduit_lwt_unix_ssl.real.ml +++ b/src/conduit-lwt-unix/conduit_lwt_unix_ssl.real.ml @@ -35,6 +35,8 @@ let chans_of_fd sock = (Lwt_ssl.get_fd sock, ic, oc) module Client = struct + type context = Ssl.context + let create_ctx ?certfile ?keyfile ?password () = let ctx = Ssl.create_context Ssl.SSLv23 Ssl.Client_context in Ssl.disable_protocols ctx [ Ssl.SSLv23 ]; diff --git a/src/conduit-lwt-unix/conduit_lwt_unix_ssl.real.mli b/src/conduit-lwt-unix/conduit_lwt_unix_ssl.real.mli index 76498a75..f1ab57bc 100644 --- a/src/conduit-lwt-unix/conduit_lwt_unix_ssl.real.mli +++ b/src/conduit-lwt-unix/conduit_lwt_unix_ssl.real.mli @@ -21,7 +21,10 @@ module Client : sig type verify = { hostname : bool; ip : bool } val default_verify : verify - val default_ctx : Ssl.context + + type context = Ssl.context + + val default_ctx : context val create_ctx : ?certfile:string -> @@ -31,7 +34,7 @@ module Client : sig Ssl.context val connect : - ?ctx:Ssl.context -> + ?ctx:context -> ?src:Lwt_unix.sockaddr -> ?hostname:string -> ?ip:Ipaddr.t ->