@@ -53,6 +53,8 @@ type socket_int_option =
5353 | EIO_TCP_KEEPCNT
5454 | EIO_TCP_KEEPIDLE
5555 | EIO_TCP_KEEPINTVL
56+ | EIO_TCP_DEFER_ACCEPT
57+ | EIO_TCP_NODELAY
5658
5759external setsockopt_int : Unix .file_descr -> socket_int_option -> int -> unit =
5860 " eio_unix_setsockopt_int"
@@ -64,10 +66,12 @@ module Sockopt = struct
6466 | SO_KEEPALIVE : bool Eio.Net.Sockopt .t
6567 | SO_REUSEADDR : bool Eio.Net.Sockopt .t
6668 | SO_REUSEPORT : bool Eio.Net.Sockopt .t
69+ | TCP_NODELAY : bool Eio.Net.Sockopt .t
6770 | TCP_CORK : int Eio.Net.Sockopt .t
6871 | TCP_KEEPCNT : int Eio.Net.Sockopt .t
6972 | TCP_KEEPIDLE : int Eio.Net.Sockopt .t
7073 | TCP_KEEPINTVL : int Eio.Net.Sockopt .t
74+ | TCP_DEFER_ACCEPT : int Eio.Net.Sockopt .t
7175
7276 let set : type a . Fd.t -> a Eio.Net.Sockopt.t -> a -> unit = fun sock k v ->
7377 Fd. use_exn " Sockopt.set" sock @@ fun fd ->
@@ -76,6 +80,8 @@ module Sockopt = struct
7680 | TCP_KEEPCNT -> setsockopt_int fd EIO_TCP_KEEPCNT v
7781 | TCP_KEEPIDLE -> setsockopt_int fd EIO_TCP_KEEPIDLE v
7882 | TCP_KEEPINTVL -> setsockopt_int fd EIO_TCP_KEEPINTVL v
83+ | TCP_DEFER_ACCEPT -> setsockopt_int fd EIO_TCP_DEFER_ACCEPT v
84+ | TCP_NODELAY -> setsockopt_int fd EIO_TCP_DEFER_ACCEPT (if v then 1 else 0 )
7985 | SO_KEEPALIVE -> Unix. (setsockopt fd SO_KEEPALIVE v)
8086 | SO_REUSEADDR -> Unix. (setsockopt fd SO_REUSEADDR v)
8187 | SO_REUSEPORT -> Unix. (setsockopt fd SO_REUSEPORT v)
@@ -87,6 +93,8 @@ module Sockopt = struct
8793 | TCP_KEEPCNT -> getsockopt_int fd EIO_TCP_KEEPCNT
8894 | TCP_KEEPIDLE -> getsockopt_int fd EIO_TCP_KEEPIDLE
8995 | TCP_KEEPINTVL -> getsockopt_int fd EIO_TCP_KEEPINTVL
96+ | TCP_DEFER_ACCEPT -> getsockopt_int fd EIO_TCP_DEFER_ACCEPT
97+ | TCP_NODELAY -> getsockopt_int fd EIO_TCP_NODELAY = 1
9098 | SO_KEEPALIVE -> Unix. (getsockopt fd SO_KEEPALIVE )
9199 | SO_REUSEADDR -> Unix. (getsockopt fd SO_REUSEADDR )
92100 | SO_REUSEPORT -> Unix. (getsockopt fd SO_REUSEPORT )
0 commit comments