6262 pub ipv6mr_multiaddr: in6_addr,
6363 pub ipv6mr_interface: :: c_uint,
6464 }
65+
66+ pub struct linger {
67+ pub l_onoff: :: c_int,
68+ pub l_linger: :: c_int,
69+ }
6570}
6671
6772pub const SHUT_RD : :: c_int = 1 << 0 ;
@@ -72,22 +77,32 @@ pub const MSG_NOSIGNAL: ::c_int = 0x4000;
7277pub const MSG_PEEK : :: c_int = 0x0002 ;
7378
7479pub const SO_REUSEADDR : :: c_int = 2 ;
80+ pub const SO_TYPE : :: c_int = 3 ;
7581pub const SO_ERROR : :: c_int = 4 ;
7682pub const SO_BROADCAST : :: c_int = 6 ;
83+ pub const SO_SNDBUF : :: c_int = 7 ;
84+ pub const SO_RCVBUF : :: c_int = 8 ;
85+ pub const SO_KEEPALIVE : :: c_int = 9 ;
7786pub const SO_LINGER : :: c_int = 13 ;
87+ pub const SO_ACCEPTCONN : :: c_int = 30 ;
88+ pub const SO_PROTOCOL : :: c_int = 38 ;
89+ pub const SO_DOMAIN : :: c_int = 39 ;
7890pub const SO_RCVTIMEO : :: c_int = 66 ;
7991pub const SO_SNDTIMEO : :: c_int = 67 ;
8092
8193pub const SOCK_DGRAM : :: c_int = 5 ;
8294pub const SOCK_STREAM : :: c_int = 6 ;
95+ pub const SOCK_NONBLOCK : :: c_int = 0x00004000 ;
8396
8497pub const SOL_SOCKET : :: c_int = 0x7fffffff ;
8598
99+ pub const AF_UNSPEC : :: c_int = 0 ;
86100pub const AF_INET : :: c_int = 1 ;
87101pub const AF_INET6 : :: c_int = 2 ;
88102
89103pub const IPPROTO_IP : :: c_int = 0 ;
90104pub const IPPROTO_TCP : :: c_int = 6 ;
105+ pub const IPPROTO_UDP : :: c_int = 17 ;
91106pub const IPPROTO_IPV6 : :: c_int = 41 ;
92107
93108pub const IP_TTL : :: c_int = 2 ;
@@ -96,6 +111,7 @@ pub const IP_MULTICAST_LOOP: ::c_int = 34;
96111pub const IP_ADD_MEMBERSHIP : :: c_int = 35 ;
97112pub const IP_DROP_MEMBERSHIP : :: c_int = 36 ;
98113
114+ pub const IPV6_UNICAST_HOPS : :: c_int = 16 ;
99115pub const IPV6_MULTICAST_LOOP : :: c_int = 19 ;
100116pub const IPV6_JOIN_GROUP : :: c_int = 20 ;
101117pub const IPV6_LEAVE_GROUP : :: c_int = 21 ;
@@ -105,6 +121,9 @@ pub const IPV6_ADD_MEMBERSHIP: ::c_int = IPV6_JOIN_GROUP;
105121pub const IPV6_DROP_MEMBERSHIP : :: c_int = IPV6_LEAVE_GROUP ;
106122
107123pub const TCP_NODELAY : :: c_int = 1 ;
124+ pub const TCP_KEEPIDLE : :: c_int = 4 ;
125+ pub const TCP_KEEPINTVL : :: c_int = 5 ;
126+ pub const TCP_KEEPCNT : :: c_int = 6 ;
108127
109128pub const EAI_SYSTEM : :: c_int = -11 ;
110129
@@ -114,6 +133,12 @@ extern "C" {
114133 pub fn bind ( socket : :: c_int , addr : * const sockaddr , addrlen : socklen_t ) -> :: c_int ;
115134 pub fn listen ( socket : :: c_int , backlog : :: c_int ) -> :: c_int ;
116135 pub fn accept ( socket : :: c_int , addr : * mut sockaddr , addrlen : * mut socklen_t ) -> :: c_int ;
136+ pub fn accept4 (
137+ socket : :: c_int ,
138+ addr : * mut sockaddr ,
139+ addrlen : * mut socklen_t ,
140+ flags : :: c_int ,
141+ ) -> :: c_int ;
117142
118143 pub fn getsockname ( socket : :: c_int , addr : * mut sockaddr , addrlen : * mut socklen_t ) -> :: c_int ;
119144 pub fn getpeername ( socket : :: c_int , addr : * mut sockaddr , addrlen : * mut socklen_t ) -> :: c_int ;
0 commit comments