package eio

  1. Overview
  2. Docs
Effect-based direct-style IO API for OCaml

Install

dune-project
 Dependency

Authors

Maintainers

Sources

eio-1.6.tbz
sha256=c1f04986b401094176494863dde1ca9b292b59fdc679a9d7023e558d80fb5b15
sha512=92ed8cf20300b8a4e0141bdbc373c0803c5a24530cb65852637d905fff4a5b956a8859a00a424034ff78c1112da9b0391194bcd558326168bdebd1ce683a8890

doc/src/eio.mock/sockopt.ml.html

Source file sockopt.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
open Eio.Std

let setsockopt label opt v = traceln "%s: setsockopt %a" label Eio.Net.Sockopt.pp_binding (opt, v)

let default (type a) (opt : a Eio.Net.Sockopt.t) : a =
  let open Eio.Net.Sockopt in
  match opt with
  | SO_DEBUG -> false
  | SO_BROADCAST -> false
  | SO_REUSEADDR -> false
  | SO_KEEPALIVE -> false
  | SO_DONTROUTE -> false
  | SO_OOBINLINE -> false
  | TCP_NODELAY -> false
  | IPV6_ONLY -> false
  | SO_REUSEPORT -> false
  | SO_SNDBUF -> 0
  | SO_RCVBUF -> 0
  | SO_RCVLOWAT -> 0
  | SO_SNDLOWAT -> 0
  | SO_LINGER -> None
  | SO_RCVTIMEO -> 0.0
  | SO_SNDTIMEO -> 0.0
  | _ -> raise (Eio.Net.err Invalid_option)

let getsockopt : type a. string -> a Eio.Net.Sockopt.t -> a = fun label opt ->
  let v = default opt in
  traceln "%s: getsockopt %a" label Eio.Net.Sockopt.pp_binding (opt, v);
  v