v / vlib / net
Raw file | 50 loc (47 sloc) | 1.06 KB | Latest commit hash 37700502f
1module net
2
3pub enum SocketOption {
4 // TODO: SO_ACCEPT_CONN is not here because windows doesn't support it
5 // and there is no easy way to define it
6 broadcast = C.SO_BROADCAST
7 debug = C.SO_DEBUG
8 dont_route = C.SO_DONTROUTE
9 error = C.SO_ERROR
10 keep_alive = C.SO_KEEPALIVE
11 linger = C.SO_LINGER
12 oob_inline = C.SO_OOBINLINE
13 reuse_addr = C.SO_REUSEADDR
14 receive_buf_size = C.SO_RCVBUF
15 receive_low_size = C.SO_RCVLOWAT
16 receive_timeout = C.SO_RCVTIMEO
17 send_buf_size = C.SO_SNDBUF
18 send_low_size = C.SO_SNDLOWAT
19 send_timeout = C.SO_SNDTIMEO
20 socket_type = C.SO_TYPE
21 ipv6_only = C.IPV6_V6ONLY
22}
23
24const (
25 opts_bool = [SocketOption.broadcast, .debug, .dont_route, .error, .keep_alive, .oob_inline]
26 opts_int = [
27 .receive_buf_size,
28 .receive_low_size,
29 .receive_timeout,
30 .send_buf_size,
31 .send_low_size,
32 .send_timeout,
33 ]
34
35 opts_can_set = [
36 SocketOption.broadcast,
37 .debug,
38 .dont_route,
39 .keep_alive,
40 .linger,
41 .oob_inline,
42 .receive_buf_size,
43 .receive_low_size,
44 .receive_timeout,
45 .send_buf_size,
46 .send_low_size,
47 .send_timeout,
48 .ipv6_only,
49 ]
50)