62
62
pub ipv6mr_multiaddr: in6_addr,
63
63
pub ipv6mr_interface: :: c_uint,
64
64
}
65
+
66
+ pub struct linger {
67
+ pub l_onoff: :: c_int,
68
+ pub l_linger: :: c_int,
69
+ }
65
70
}
66
71
67
72
pub const SHUT_RD : :: c_int = 1 << 0 ;
@@ -72,22 +77,32 @@ pub const MSG_NOSIGNAL: ::c_int = 0x4000;
72
77
pub const MSG_PEEK : :: c_int = 0x0002 ;
73
78
74
79
pub const SO_REUSEADDR : :: c_int = 2 ;
80
+ pub const SO_TYPE : :: c_int = 3 ;
75
81
pub const SO_ERROR : :: c_int = 4 ;
76
82
pub 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 ;
77
86
pub 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 ;
78
90
pub const SO_RCVTIMEO : :: c_int = 66 ;
79
91
pub const SO_SNDTIMEO : :: c_int = 67 ;
80
92
81
93
pub const SOCK_DGRAM : :: c_int = 5 ;
82
94
pub const SOCK_STREAM : :: c_int = 6 ;
95
+ pub const SOCK_NONBLOCK : :: c_int = 0x00004000 ;
83
96
84
97
pub const SOL_SOCKET : :: c_int = 0x7fffffff ;
85
98
99
+ pub const AF_UNSPEC : :: c_int = 0 ;
86
100
pub const AF_INET : :: c_int = 1 ;
87
101
pub const AF_INET6 : :: c_int = 2 ;
88
102
89
103
pub const IPPROTO_IP : :: c_int = 0 ;
90
104
pub const IPPROTO_TCP : :: c_int = 6 ;
105
+ pub const IPPROTO_UDP : :: c_int = 17 ;
91
106
pub const IPPROTO_IPV6 : :: c_int = 41 ;
92
107
93
108
pub const IP_TTL : :: c_int = 2 ;
@@ -96,6 +111,7 @@ pub const IP_MULTICAST_LOOP: ::c_int = 34;
96
111
pub const IP_ADD_MEMBERSHIP : :: c_int = 35 ;
97
112
pub const IP_DROP_MEMBERSHIP : :: c_int = 36 ;
98
113
114
+ pub const IPV6_UNICAST_HOPS : :: c_int = 16 ;
99
115
pub const IPV6_MULTICAST_LOOP : :: c_int = 19 ;
100
116
pub const IPV6_JOIN_GROUP : :: c_int = 20 ;
101
117
pub const IPV6_LEAVE_GROUP : :: c_int = 21 ;
@@ -105,6 +121,9 @@ pub const IPV6_ADD_MEMBERSHIP: ::c_int = IPV6_JOIN_GROUP;
105
121
pub const IPV6_DROP_MEMBERSHIP : :: c_int = IPV6_LEAVE_GROUP ;
106
122
107
123
pub 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 ;
108
127
109
128
pub const EAI_SYSTEM : :: c_int = -11 ;
110
129
@@ -114,6 +133,12 @@ extern "C" {
114
133
pub fn bind ( socket : :: c_int , addr : * const sockaddr , addrlen : socklen_t ) -> :: c_int ;
115
134
pub fn listen ( socket : :: c_int , backlog : :: c_int ) -> :: c_int ;
116
135
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 ;
117
142
118
143
pub fn getsockname ( socket : :: c_int , addr : * mut sockaddr , addrlen : * mut socklen_t ) -> :: c_int ;
119
144
pub fn getpeername ( socket : :: c_int , addr : * mut sockaddr , addrlen : * mut socklen_t ) -> :: c_int ;
0 commit comments