Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
http_miou_unix.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
let src = Logs.Src.create "http-miou-unix" module Log = (val Logs.src_log src : Logs.LOG) external reraise : exn -> 'a = "%reraise" module TCP = struct type t = Miou_unix.file_descr let read flow ?off ?len buf = try Miou_unix.read flow buf ?off ?len with | Unix.Unix_error (Unix.ECONNRESET, _, _) -> 0 | Unix.Unix_error _ as exn -> raise exn let write fd ?off ?len str = try Miou_unix.write fd str ?off ?len with | Unix.(Unix_error (EPIPE, _, _)) -> reraise Flow.Closed_by_peer | exn -> reraise exn let close = Miou_unix.close let shutdown flow cmd = try match cmd with | `read -> Unix.shutdown (Miou_unix.to_file_descr flow) Unix.SHUTDOWN_RECEIVE | `write -> Unix.shutdown (Miou_unix.to_file_descr flow) Unix.SHUTDOWN_SEND | `read_write -> Unix.close (Miou_unix.to_file_descr flow) with Unix.Unix_error (Unix.ENOTCONN, _, _) -> () [@@ocamlformat "disable"] end module TLS = struct include Tls_miou_unix let write fd ?off ?len str = try write fd ?off ?len str with | Tls_miou_unix.Closed_by_peer -> reraise Flow.Closed_by_peer | exn -> reraise exn end