Skip to content

Commit fb941d6

Browse files
committed
sockopt: add Linux support
1 parent e329d21 commit fb941d6

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

lib_eio_linux/eio_linux.ml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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
121129
end
122130

123131
let 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

171185
let 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
192209
end
193210

194211
let socket_domain_of = function

0 commit comments

Comments
 (0)