@@ -118,6 +118,14 @@ let datagram_socket sock = object
118118 method recv buf =
119119 let addr, recv = Low_level. recv_msg sock [buf] in
120120 Eio_unix.Net. sockaddr_of_unix_datagram (Uring.Sockaddr. get addr), recv
121+
122+ method setsockopt opt v =
123+ (* No uring support for sockopt yet, but will be in the future.
124+ https://github.com/axboe/liburing/issues/234#issuecomment-1080605124 *)
125+ Eio_unix.Net.Sockopt. set sock opt v
126+
127+ method getsockopt opt =
128+ Eio_unix.Net.Sockopt. get sock opt
121129end
122130
123131let flow fd =
@@ -166,6 +174,12 @@ let flow fd =
166174 | `Receive -> Unix. SHUTDOWN_RECEIVE
167175 | `Send -> Unix. SHUTDOWN_SEND
168176 | `All -> Unix. SHUTDOWN_ALL
177+
178+ method setsockopt : 'a . 'a Eio.Net.Sockopt. t -> 'a -> unit = fun opt v ->
179+ Eio_unix.Net.Sockopt. set fd opt v
180+
181+ method getsockopt : 'a . 'a Eio.Net.Sockopt. t -> 'a = fun opt ->
182+ Eio_unix.Net.Sockopt. get fd opt
169183 end
170184
171185let source fd = (flow fd :> source )
@@ -189,6 +203,9 @@ let listening_socket fd = object
189203 method! probe : type a. a Eio.Generic. ty -> a option = function
190204 | Eio_unix.Resource. FD -> Some fd
191205 | _ -> None
206+
207+ method setsockopt opt v = Eio_unix.Net.Sockopt. set fd opt v
208+ method getsockopt opt = Eio_unix.Net.Sockopt. get fd opt
192209end
193210
194211let socket_domain_of = function
0 commit comments