My own corner of monopam
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix(ocaml-tls): fix drain_handshake on Read_closed/Write_closed states

Port upstream fix: drain_handshake now returns immediately when in
Read_closed or Write_closed state (not just Active) as long as the
handshake is not in progress. Also fix test_eio_epoch to call epoch
before shutdown to avoid the race.

+7 -2
+3
ocaml-tls/eio/tls_eio.ml
··· 147 147 in 148 148 match t.state with 149 149 | `Active tls when not (Tls.Engine.handshake_in_progress tls) -> t 150 + | (`Read_closed tls | `Write_closed tls) 151 + when not (Tls.Engine.handshake_in_progress tls) -> 152 + t 150 153 | _ -> 151 154 let cs = read_react t in 152 155 push_linger t cs;
+4 -2
ocaml-tls/test/eio/test_tls_eio.ml
··· 142 142 let server_fiber = 143 143 Fiber.fork_promise ~sw (fun () -> 144 144 let tls = Tls_eio.server_of_flow server_cfg server_sock in 145 + let ep = Tls_eio.epoch tls in 145 146 Eio.Flow.shutdown tls `All; 146 - Tls_eio.epoch tls) 147 + ep) 147 148 in 148 149 let client_fiber = 149 150 Fiber.fork_promise ~sw (fun () -> 150 151 let tls = Tls_eio.client_of_flow client_cfg client_sock in 152 + let ep = Tls_eio.epoch tls in 151 153 Eio.Flow.shutdown tls `All; 152 - Tls_eio.epoch tls) 154 + ep) 153 155 in 154 156 let client_epoch = Promise.await_exn client_fiber in 155 157 let server_epoch = Promise.await_exn server_fiber in