xref: /PHP-8.2/ext/sockets/sockets_arginfo.h (revision 4767b099)
1 /* This is a generated file, edit the .stub.php file instead.
2  * Stub hash: d28c6b566f4739b1eaefb82032e620aeb59728dc */
3 
4 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_socket_select, 0, 4, MAY_BE_LONG|MAY_BE_FALSE)
5 	ZEND_ARG_TYPE_INFO(1, read, IS_ARRAY, 1)
6 	ZEND_ARG_TYPE_INFO(1, write, IS_ARRAY, 1)
7 	ZEND_ARG_TYPE_INFO(1, except, IS_ARRAY, 1)
8 	ZEND_ARG_TYPE_INFO(0, seconds, IS_LONG, 1)
9 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, microseconds, IS_LONG, 0, "0")
10 ZEND_END_ARG_INFO()
11 
12 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_socket_create_listen, 0, 1, Socket, MAY_BE_FALSE)
13 	ZEND_ARG_TYPE_INFO(0, port, IS_LONG, 0)
14 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, backlog, IS_LONG, 0, "128")
15 ZEND_END_ARG_INFO()
16 
17 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_socket_accept, 0, 1, Socket, MAY_BE_FALSE)
18 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
19 ZEND_END_ARG_INFO()
20 
21 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_socket_set_nonblock, 0, 1, _IS_BOOL, 0)
22 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
23 ZEND_END_ARG_INFO()
24 
25 #define arginfo_socket_set_block arginfo_socket_set_nonblock
26 
27 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_socket_listen, 0, 1, _IS_BOOL, 0)
28 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
29 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, backlog, IS_LONG, 0, "0")
30 ZEND_END_ARG_INFO()
31 
32 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_socket_close, 0, 1, IS_VOID, 0)
33 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
34 ZEND_END_ARG_INFO()
35 
36 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_socket_write, 0, 2, MAY_BE_LONG|MAY_BE_FALSE)
37 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
38 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
39 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, length, IS_LONG, 1, "null")
40 ZEND_END_ARG_INFO()
41 
42 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_socket_read, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
43 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
44 	ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
45 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "PHP_BINARY_READ")
46 ZEND_END_ARG_INFO()
47 
48 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_socket_getsockname, 0, 2, _IS_BOOL, 0)
49 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
50 	ZEND_ARG_INFO(1, address)
51 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, port, "null")
52 ZEND_END_ARG_INFO()
53 
54 #define arginfo_socket_getpeername arginfo_socket_getsockname
55 
56 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_socket_create, 0, 3, Socket, MAY_BE_FALSE)
57 	ZEND_ARG_TYPE_INFO(0, domain, IS_LONG, 0)
58 	ZEND_ARG_TYPE_INFO(0, type, IS_LONG, 0)
59 	ZEND_ARG_TYPE_INFO(0, protocol, IS_LONG, 0)
60 ZEND_END_ARG_INFO()
61 
62 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_socket_connect, 0, 2, _IS_BOOL, 0)
63 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
64 	ZEND_ARG_TYPE_INFO(0, address, IS_STRING, 0)
65 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, port, IS_LONG, 1, "null")
66 ZEND_END_ARG_INFO()
67 
68 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_socket_strerror, 0, 1, IS_STRING, 0)
69 	ZEND_ARG_TYPE_INFO(0, error_code, IS_LONG, 0)
70 ZEND_END_ARG_INFO()
71 
72 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_socket_bind, 0, 2, _IS_BOOL, 0)
73 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
74 	ZEND_ARG_TYPE_INFO(0, address, IS_STRING, 0)
75 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, port, IS_LONG, 0, "0")
76 ZEND_END_ARG_INFO()
77 
78 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_socket_recv, 0, 4, MAY_BE_LONG|MAY_BE_FALSE)
79 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
80 	ZEND_ARG_INFO(1, data)
81 	ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
82 	ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
83 ZEND_END_ARG_INFO()
84 
85 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_socket_send, 0, 4, MAY_BE_LONG|MAY_BE_FALSE)
86 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
87 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
88 	ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
89 	ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
90 ZEND_END_ARG_INFO()
91 
92 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_socket_recvfrom, 0, 5, MAY_BE_LONG|MAY_BE_FALSE)
93 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
94 	ZEND_ARG_INFO(1, data)
95 	ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
96 	ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
97 	ZEND_ARG_INFO(1, address)
98 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, port, "null")
99 ZEND_END_ARG_INFO()
100 
101 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_socket_sendto, 0, 5, MAY_BE_LONG|MAY_BE_FALSE)
102 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
103 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
104 	ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
105 	ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
106 	ZEND_ARG_TYPE_INFO(0, address, IS_STRING, 0)
107 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, port, IS_LONG, 1, "null")
108 ZEND_END_ARG_INFO()
109 
110 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_socket_get_option, 0, 3, MAY_BE_ARRAY|MAY_BE_LONG|MAY_BE_FALSE)
111 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
112 	ZEND_ARG_TYPE_INFO(0, level, IS_LONG, 0)
113 	ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
114 ZEND_END_ARG_INFO()
115 
116 #define arginfo_socket_getopt arginfo_socket_get_option
117 
118 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_socket_set_option, 0, 4, _IS_BOOL, 0)
119 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
120 	ZEND_ARG_TYPE_INFO(0, level, IS_LONG, 0)
121 	ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
122 	ZEND_ARG_INFO(0, value)
123 ZEND_END_ARG_INFO()
124 
125 #define arginfo_socket_setopt arginfo_socket_set_option
126 
127 #if defined(HAVE_SOCKETPAIR)
128 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_socket_create_pair, 0, 4, _IS_BOOL, 0)
129 	ZEND_ARG_TYPE_INFO(0, domain, IS_LONG, 0)
130 	ZEND_ARG_TYPE_INFO(0, type, IS_LONG, 0)
131 	ZEND_ARG_TYPE_INFO(0, protocol, IS_LONG, 0)
132 	ZEND_ARG_INFO(1, pair)
133 ZEND_END_ARG_INFO()
134 #endif
135 
136 #if defined(HAVE_SHUTDOWN)
137 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_socket_shutdown, 0, 1, _IS_BOOL, 0)
138 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
139 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "2")
140 ZEND_END_ARG_INFO()
141 #endif
142 
143 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_socket_last_error, 0, 0, IS_LONG, 0)
144 	ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, socket, Socket, 1, "null")
145 ZEND_END_ARG_INFO()
146 
147 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_socket_clear_error, 0, 0, IS_VOID, 0)
148 	ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, socket, Socket, 1, "null")
149 ZEND_END_ARG_INFO()
150 
151 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_socket_import_stream, 0, 1, Socket, MAY_BE_FALSE)
152 	ZEND_ARG_INFO(0, stream)
153 ZEND_END_ARG_INFO()
154 
155 ZEND_BEGIN_ARG_INFO_EX(arginfo_socket_export_stream, 0, 0, 1)
156 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
157 ZEND_END_ARG_INFO()
158 
159 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_socket_sendmsg, 0, 2, MAY_BE_LONG|MAY_BE_FALSE)
160 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
161 	ZEND_ARG_TYPE_INFO(0, message, IS_ARRAY, 0)
162 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0")
163 ZEND_END_ARG_INFO()
164 
165 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_socket_recvmsg, 0, 2, MAY_BE_LONG|MAY_BE_FALSE)
166 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
167 	ZEND_ARG_TYPE_INFO(1, message, IS_ARRAY, 0)
168 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0")
169 ZEND_END_ARG_INFO()
170 
171 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_socket_cmsg_space, 0, 2, IS_LONG, 1)
172 	ZEND_ARG_TYPE_INFO(0, level, IS_LONG, 0)
173 	ZEND_ARG_TYPE_INFO(0, type, IS_LONG, 0)
174 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, num, IS_LONG, 0, "0")
175 ZEND_END_ARG_INFO()
176 
177 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_socket_addrinfo_lookup, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE)
178 	ZEND_ARG_TYPE_INFO(0, host, IS_STRING, 0)
179 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, service, IS_STRING, 1, "null")
180 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, hints, IS_ARRAY, 0, "[]")
181 ZEND_END_ARG_INFO()
182 
183 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_socket_addrinfo_connect, 0, 1, Socket, MAY_BE_FALSE)
184 	ZEND_ARG_OBJ_INFO(0, address, AddressInfo, 0)
185 ZEND_END_ARG_INFO()
186 
187 #define arginfo_socket_addrinfo_bind arginfo_socket_addrinfo_connect
188 
189 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_socket_addrinfo_explain, 0, 1, IS_ARRAY, 0)
190 	ZEND_ARG_OBJ_INFO(0, address, AddressInfo, 0)
191 ZEND_END_ARG_INFO()
192 
193 #if defined(PHP_WIN32)
194 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_socket_wsaprotocol_info_export, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
195 	ZEND_ARG_OBJ_INFO(0, socket, Socket, 0)
196 	ZEND_ARG_TYPE_INFO(0, process_id, IS_LONG, 0)
197 ZEND_END_ARG_INFO()
198 #endif
199 
200 #if defined(PHP_WIN32)
201 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_socket_wsaprotocol_info_import, 0, 1, Socket, MAY_BE_FALSE)
202 	ZEND_ARG_TYPE_INFO(0, info_id, IS_STRING, 0)
203 ZEND_END_ARG_INFO()
204 #endif
205 
206 #if defined(PHP_WIN32)
207 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_socket_wsaprotocol_info_release, 0, 1, _IS_BOOL, 0)
208 	ZEND_ARG_TYPE_INFO(0, info_id, IS_STRING, 0)
209 ZEND_END_ARG_INFO()
210 #endif
211 
212 
213 ZEND_FUNCTION(socket_select);
214 ZEND_FUNCTION(socket_create_listen);
215 ZEND_FUNCTION(socket_accept);
216 ZEND_FUNCTION(socket_set_nonblock);
217 ZEND_FUNCTION(socket_set_block);
218 ZEND_FUNCTION(socket_listen);
219 ZEND_FUNCTION(socket_close);
220 ZEND_FUNCTION(socket_write);
221 ZEND_FUNCTION(socket_read);
222 ZEND_FUNCTION(socket_getsockname);
223 ZEND_FUNCTION(socket_getpeername);
224 ZEND_FUNCTION(socket_create);
225 ZEND_FUNCTION(socket_connect);
226 ZEND_FUNCTION(socket_strerror);
227 ZEND_FUNCTION(socket_bind);
228 ZEND_FUNCTION(socket_recv);
229 ZEND_FUNCTION(socket_send);
230 ZEND_FUNCTION(socket_recvfrom);
231 ZEND_FUNCTION(socket_sendto);
232 ZEND_FUNCTION(socket_get_option);
233 ZEND_FUNCTION(socket_set_option);
234 #if defined(HAVE_SOCKETPAIR)
235 ZEND_FUNCTION(socket_create_pair);
236 #endif
237 #if defined(HAVE_SHUTDOWN)
238 ZEND_FUNCTION(socket_shutdown);
239 #endif
240 ZEND_FUNCTION(socket_last_error);
241 ZEND_FUNCTION(socket_clear_error);
242 ZEND_FUNCTION(socket_import_stream);
243 ZEND_FUNCTION(socket_export_stream);
244 ZEND_FUNCTION(socket_sendmsg);
245 ZEND_FUNCTION(socket_recvmsg);
246 ZEND_FUNCTION(socket_cmsg_space);
247 ZEND_FUNCTION(socket_addrinfo_lookup);
248 ZEND_FUNCTION(socket_addrinfo_connect);
249 ZEND_FUNCTION(socket_addrinfo_bind);
250 ZEND_FUNCTION(socket_addrinfo_explain);
251 #if defined(PHP_WIN32)
252 ZEND_FUNCTION(socket_wsaprotocol_info_export);
253 #endif
254 #if defined(PHP_WIN32)
255 ZEND_FUNCTION(socket_wsaprotocol_info_import);
256 #endif
257 #if defined(PHP_WIN32)
258 ZEND_FUNCTION(socket_wsaprotocol_info_release);
259 #endif
260 
261 
262 static const zend_function_entry ext_functions[] = {
263 	ZEND_FE(socket_select, arginfo_socket_select)
264 	ZEND_FE(socket_create_listen, arginfo_socket_create_listen)
265 	ZEND_FE(socket_accept, arginfo_socket_accept)
266 	ZEND_FE(socket_set_nonblock, arginfo_socket_set_nonblock)
267 	ZEND_FE(socket_set_block, arginfo_socket_set_block)
268 	ZEND_FE(socket_listen, arginfo_socket_listen)
269 	ZEND_FE(socket_close, arginfo_socket_close)
270 	ZEND_FE(socket_write, arginfo_socket_write)
271 	ZEND_FE(socket_read, arginfo_socket_read)
272 	ZEND_FE(socket_getsockname, arginfo_socket_getsockname)
273 	ZEND_FE(socket_getpeername, arginfo_socket_getpeername)
274 	ZEND_FE(socket_create, arginfo_socket_create)
275 	ZEND_FE(socket_connect, arginfo_socket_connect)
276 	ZEND_FE(socket_strerror, arginfo_socket_strerror)
277 	ZEND_FE(socket_bind, arginfo_socket_bind)
278 	ZEND_FE(socket_recv, arginfo_socket_recv)
279 	ZEND_FE(socket_send, arginfo_socket_send)
280 	ZEND_FE(socket_recvfrom, arginfo_socket_recvfrom)
281 	ZEND_FE(socket_sendto, arginfo_socket_sendto)
282 	ZEND_FE(socket_get_option, arginfo_socket_get_option)
283 	ZEND_FALIAS(socket_getopt, socket_get_option, arginfo_socket_getopt)
284 	ZEND_FE(socket_set_option, arginfo_socket_set_option)
285 	ZEND_FALIAS(socket_setopt, socket_set_option, arginfo_socket_setopt)
286 #if defined(HAVE_SOCKETPAIR)
287 	ZEND_FE(socket_create_pair, arginfo_socket_create_pair)
288 #endif
289 #if defined(HAVE_SHUTDOWN)
290 	ZEND_FE(socket_shutdown, arginfo_socket_shutdown)
291 #endif
292 	ZEND_FE(socket_last_error, arginfo_socket_last_error)
293 	ZEND_FE(socket_clear_error, arginfo_socket_clear_error)
294 	ZEND_FE(socket_import_stream, arginfo_socket_import_stream)
295 	ZEND_FE(socket_export_stream, arginfo_socket_export_stream)
296 	ZEND_FE(socket_sendmsg, arginfo_socket_sendmsg)
297 	ZEND_FE(socket_recvmsg, arginfo_socket_recvmsg)
298 	ZEND_FE(socket_cmsg_space, arginfo_socket_cmsg_space)
299 	ZEND_FE(socket_addrinfo_lookup, arginfo_socket_addrinfo_lookup)
300 	ZEND_FE(socket_addrinfo_connect, arginfo_socket_addrinfo_connect)
301 	ZEND_FE(socket_addrinfo_bind, arginfo_socket_addrinfo_bind)
302 	ZEND_FE(socket_addrinfo_explain, arginfo_socket_addrinfo_explain)
303 #if defined(PHP_WIN32)
304 	ZEND_FE(socket_wsaprotocol_info_export, arginfo_socket_wsaprotocol_info_export)
305 #endif
306 #if defined(PHP_WIN32)
307 	ZEND_FE(socket_wsaprotocol_info_import, arginfo_socket_wsaprotocol_info_import)
308 #endif
309 #if defined(PHP_WIN32)
310 	ZEND_FE(socket_wsaprotocol_info_release, arginfo_socket_wsaprotocol_info_release)
311 #endif
312 	ZEND_FE_END
313 };
314 
315 
316 static const zend_function_entry class_Socket_methods[] = {
317 	ZEND_FE_END
318 };
319 
320 
321 static const zend_function_entry class_AddressInfo_methods[] = {
322 	ZEND_FE_END
323 };
324 
register_sockets_symbols(int module_number)325 static void register_sockets_symbols(int module_number)
326 {
327 	REGISTER_LONG_CONSTANT("AF_UNIX", AF_UNIX, CONST_PERSISTENT);
328 	REGISTER_LONG_CONSTANT("AF_INET", AF_INET, CONST_PERSISTENT);
329 #if HAVE_IPV6
330 	REGISTER_LONG_CONSTANT("AF_INET6", AF_INET6, CONST_PERSISTENT);
331 #endif
332 	REGISTER_LONG_CONSTANT("SOCK_STREAM", SOCK_STREAM, CONST_PERSISTENT);
333 	REGISTER_LONG_CONSTANT("SOCK_DGRAM", SOCK_DGRAM, CONST_PERSISTENT);
334 	REGISTER_LONG_CONSTANT("SOCK_RAW", SOCK_RAW, CONST_PERSISTENT);
335 	REGISTER_LONG_CONSTANT("SOCK_SEQPACKET", SOCK_SEQPACKET, CONST_PERSISTENT);
336 #if defined(SOCK_RDM)
337 	REGISTER_LONG_CONSTANT("SOCK_RDM", SOCK_RDM, CONST_PERSISTENT);
338 #endif
339 	REGISTER_LONG_CONSTANT("MSG_OOB", MSG_OOB, CONST_PERSISTENT);
340 	REGISTER_LONG_CONSTANT("MSG_WAITALL", MSG_WAITALL, CONST_PERSISTENT);
341 	REGISTER_LONG_CONSTANT("MSG_CTRUNC", MSG_CTRUNC, CONST_PERSISTENT);
342 	REGISTER_LONG_CONSTANT("MSG_TRUNC", MSG_TRUNC, CONST_PERSISTENT);
343 	REGISTER_LONG_CONSTANT("MSG_PEEK", MSG_PEEK, CONST_PERSISTENT);
344 	REGISTER_LONG_CONSTANT("MSG_DONTROUTE", MSG_DONTROUTE, CONST_PERSISTENT);
345 #if defined(MSG_EOR)
346 	REGISTER_LONG_CONSTANT("MSG_EOR", MSG_EOR, CONST_PERSISTENT);
347 #endif
348 #if defined(MSG_EOF)
349 	REGISTER_LONG_CONSTANT("MSG_EOF", MSG_EOF, CONST_PERSISTENT);
350 #endif
351 #if defined(MSG_CONFIRM)
352 	REGISTER_LONG_CONSTANT("MSG_CONFIRM", MSG_CONFIRM, CONST_PERSISTENT);
353 #endif
354 #if defined(MSG_ERRQUEUE)
355 	REGISTER_LONG_CONSTANT("MSG_ERRQUEUE", MSG_ERRQUEUE, CONST_PERSISTENT);
356 #endif
357 #if defined(MSG_NOSIGNAL)
358 	REGISTER_LONG_CONSTANT("MSG_NOSIGNAL", MSG_NOSIGNAL, CONST_PERSISTENT);
359 #endif
360 #if defined(MSG_DONTWAIT)
361 	REGISTER_LONG_CONSTANT("MSG_DONTWAIT", MSG_DONTWAIT, CONST_PERSISTENT);
362 #endif
363 #if defined(MSG_MORE)
364 	REGISTER_LONG_CONSTANT("MSG_MORE", MSG_MORE, CONST_PERSISTENT);
365 #endif
366 #if defined(MSG_WAITFORONE)
367 	REGISTER_LONG_CONSTANT("MSG_WAITFORONE", MSG_WAITFORONE, CONST_PERSISTENT);
368 #endif
369 #if defined(MSG_CMSG_CLOEXEC)
370 	REGISTER_LONG_CONSTANT("MSG_CMSG_CLOEXEC", MSG_CMSG_CLOEXEC, CONST_PERSISTENT);
371 #endif
372 #if defined(MSG_ZEROCOPY)
373 	REGISTER_LONG_CONSTANT("MSG_ZEROCOPY", MSG_ZEROCOPY, CONST_PERSISTENT);
374 #endif
375 	REGISTER_LONG_CONSTANT("SO_DEBUG", SO_DEBUG, CONST_PERSISTENT);
376 	REGISTER_LONG_CONSTANT("SO_REUSEADDR", SO_REUSEADDR, CONST_PERSISTENT);
377 #if defined(SO_REUSEPORT)
378 	REGISTER_LONG_CONSTANT("SO_REUSEPORT", SO_REUSEPORT, CONST_PERSISTENT);
379 #endif
380 	REGISTER_LONG_CONSTANT("SO_KEEPALIVE", SO_KEEPALIVE, CONST_PERSISTENT);
381 	REGISTER_LONG_CONSTANT("SO_DONTROUTE", SO_DONTROUTE, CONST_PERSISTENT);
382 	REGISTER_LONG_CONSTANT("SO_LINGER", SO_LINGER, CONST_PERSISTENT);
383 	REGISTER_LONG_CONSTANT("SO_BROADCAST", SO_BROADCAST, CONST_PERSISTENT);
384 	REGISTER_LONG_CONSTANT("SO_OOBINLINE", SO_OOBINLINE, CONST_PERSISTENT);
385 	REGISTER_LONG_CONSTANT("SO_SNDBUF", SO_SNDBUF, CONST_PERSISTENT);
386 	REGISTER_LONG_CONSTANT("SO_RCVBUF", SO_RCVBUF, CONST_PERSISTENT);
387 	REGISTER_LONG_CONSTANT("SO_SNDLOWAT", SO_SNDLOWAT, CONST_PERSISTENT);
388 	REGISTER_LONG_CONSTANT("SO_RCVLOWAT", SO_RCVLOWAT, CONST_PERSISTENT);
389 	REGISTER_LONG_CONSTANT("SO_SNDTIMEO", SO_SNDTIMEO, CONST_PERSISTENT);
390 	REGISTER_LONG_CONSTANT("SO_RCVTIMEO", SO_RCVTIMEO, CONST_PERSISTENT);
391 	REGISTER_LONG_CONSTANT("SO_TYPE", SO_TYPE, CONST_PERSISTENT);
392 #if defined(SO_FAMILY)
393 	REGISTER_LONG_CONSTANT("SO_FAMILY", SO_FAMILY, CONST_PERSISTENT);
394 #endif
395 	REGISTER_LONG_CONSTANT("SO_ERROR", SO_ERROR, CONST_PERSISTENT);
396 #if defined(SO_BINDTODEVICE)
397 	REGISTER_LONG_CONSTANT("SO_BINDTODEVICE", SO_BINDTODEVICE, CONST_PERSISTENT);
398 #endif
399 #if defined(SO_USER_COOKIE)
400 	REGISTER_LONG_CONSTANT("SO_LABEL", SO_LABEL, CONST_PERSISTENT);
401 #endif
402 #if defined(SO_USER_COOKIE)
403 	REGISTER_LONG_CONSTANT("SO_PEERLABEL", SO_PEERLABEL, CONST_PERSISTENT);
404 #endif
405 #if defined(SO_USER_COOKIE)
406 	REGISTER_LONG_CONSTANT("SO_LISTENQLIMIT", SO_LISTENQLIMIT, CONST_PERSISTENT);
407 #endif
408 #if defined(SO_USER_COOKIE)
409 	REGISTER_LONG_CONSTANT("SO_LISTENQLEN", SO_LISTENQLEN, CONST_PERSISTENT);
410 #endif
411 #if defined(SO_USER_COOKIE)
412 	REGISTER_LONG_CONSTANT("SO_USER_COOKIE", SO_USER_COOKIE, CONST_PERSISTENT);
413 #endif
414 #if defined(SO_SETFIB)
415 	REGISTER_LONG_CONSTANT("SO_SETFIB", SO_SETFIB, CONST_PERSISTENT);
416 #endif
417 #if defined(SO_ACCEPTFILTER)
418 	REGISTER_LONG_CONSTANT("SO_ACCEPTFILTER", SO_ACCEPTFILTER, CONST_PERSISTENT);
419 #endif
420 #if defined(SOL_FILTER)
421 	REGISTER_LONG_CONSTANT("SOL_FILTER", SOL_FILTER, CONST_PERSISTENT);
422 #endif
423 #if defined(SOL_FILTER)
424 	REGISTER_LONG_CONSTANT("FIL_ATTACH", FIL_ATTACH, CONST_PERSISTENT);
425 #endif
426 #if defined(SOL_FILTER)
427 	REGISTER_LONG_CONSTANT("FIL_DETACH", FIL_DETACH, CONST_PERSISTENT);
428 #endif
429 #if defined(SO_DONTTRUNC)
430 	REGISTER_LONG_CONSTANT("SO_DONTTRUNC", SO_DONTTRUNC, CONST_PERSISTENT);
431 #endif
432 #if defined(SO_WANTMORE)
433 	REGISTER_LONG_CONSTANT("SO_WANTMORE", SO_WANTMORE, CONST_PERSISTENT);
434 #endif
435 	REGISTER_LONG_CONSTANT("SOL_SOCKET", SOL_SOCKET, CONST_PERSISTENT);
436 	REGISTER_LONG_CONSTANT("SOMAXCONN", SOMAXCONN, CONST_PERSISTENT);
437 #if defined(SO_MARK)
438 	REGISTER_LONG_CONSTANT("SO_MARK", SO_MARK, CONST_PERSISTENT);
439 #endif
440 #if defined(SO_RTABLE)
441 	REGISTER_LONG_CONSTANT("SO_RTABLE", SO_RTABLE, CONST_PERSISTENT);
442 #endif
443 #if defined(SO_INCOMING_CPU)
444 	REGISTER_LONG_CONSTANT("SO_INCOMING_CPU", SO_INCOMING_CPU, CONST_PERSISTENT);
445 #endif
446 #if defined(SO_MEMINFO)
447 	REGISTER_LONG_CONSTANT("SO_MEMINFO", SO_MEMINFO, CONST_PERSISTENT);
448 #endif
449 #if defined(SO_BPF_EXTENSIONS)
450 	REGISTER_LONG_CONSTANT("SO_BPF_EXTENSIONS", SO_BPF_EXTENSIONS, CONST_PERSISTENT);
451 #endif
452 #if defined(SKF_AD_OFF)
453 	REGISTER_LONG_CONSTANT("SKF_AD_OFF", SKF_AD_OFF, CONST_PERSISTENT);
454 #endif
455 #if defined(SKF_AD_PROTOCOL)
456 	REGISTER_LONG_CONSTANT("SKF_AD_PROTOCOL", SKF_AD_PROTOCOL, CONST_PERSISTENT);
457 #endif
458 #if defined(SKF_AD_PKTTYPE)
459 	REGISTER_LONG_CONSTANT("SKF_AD_PKTTYPE", SKF_AD_PKTTYPE, CONST_PERSISTENT);
460 #endif
461 #if defined(SKF_AD_IFINDEX)
462 	REGISTER_LONG_CONSTANT("SKF_AD_IFINDEX", SKF_AD_IFINDEX, CONST_PERSISTENT);
463 #endif
464 #if defined(SKF_AD_NLATTR)
465 	REGISTER_LONG_CONSTANT("SKF_AD_NLATTR", SKF_AD_NLATTR, CONST_PERSISTENT);
466 #endif
467 #if defined(SKF_AD_NLATTR_NEST)
468 	REGISTER_LONG_CONSTANT("SKF_AD_NLATTR_NEST", SKF_AD_NLATTR_NEST, CONST_PERSISTENT);
469 #endif
470 #if defined(SKF_AD_MARK)
471 	REGISTER_LONG_CONSTANT("SKF_AD_MARK", SKF_AD_MARK, CONST_PERSISTENT);
472 #endif
473 #if defined(SKF_AD_QUEUE)
474 	REGISTER_LONG_CONSTANT("SKF_AD_QUEUE", SKF_AD_QUEUE, CONST_PERSISTENT);
475 #endif
476 #if defined(SKF_AD_HATYPE)
477 	REGISTER_LONG_CONSTANT("SKF_AD_HATYPE", SKF_AD_HATYPE, CONST_PERSISTENT);
478 #endif
479 #if defined(SKF_AD_RXHASH)
480 	REGISTER_LONG_CONSTANT("SKF_AD_RXHASH", SKF_AD_RXHASH, CONST_PERSISTENT);
481 #endif
482 #if defined(SKF_AD_CPU)
483 	REGISTER_LONG_CONSTANT("SKF_AD_CPU", SKF_AD_CPU, CONST_PERSISTENT);
484 #endif
485 #if defined(SKF_AD_ALU_XOR_X)
486 	REGISTER_LONG_CONSTANT("SKF_AD_ALU_XOR_X", SKF_AD_ALU_XOR_X, CONST_PERSISTENT);
487 #endif
488 #if defined(SKF_AD_VLAN_TAG)
489 	REGISTER_LONG_CONSTANT("SKF_AD_VLAN_TAG", SKF_AD_VLAN_TAG, CONST_PERSISTENT);
490 #endif
491 #if defined(SKF_AD_VLAN_TAG_PRESENT)
492 	REGISTER_LONG_CONSTANT("SKF_AD_VLAN_TAG_PRESENT", SKF_AD_VLAN_TAG_PRESENT, CONST_PERSISTENT);
493 #endif
494 #if defined(SKF_AD_PAY_OFFSET)
495 	REGISTER_LONG_CONSTANT("SKF_AD_PAY_OFFSET", SKF_AD_PAY_OFFSET, CONST_PERSISTENT);
496 #endif
497 #if defined(SKF_AD_RANDOM)
498 	REGISTER_LONG_CONSTANT("SKF_AD_RANDOM", SKF_AD_RANDOM, CONST_PERSISTENT);
499 #endif
500 #if defined(SKF_AD_VLAN_TPID)
501 	REGISTER_LONG_CONSTANT("SKF_AD_VLAN_TPID", SKF_AD_VLAN_TPID, CONST_PERSISTENT);
502 #endif
503 #if defined(SKF_AD_MAX)
504 	REGISTER_LONG_CONSTANT("SKF_AD_MAX", SKF_AD_MAX, CONST_PERSISTENT);
505 #endif
506 #if defined(TCP_CONGESTION)
507 	REGISTER_LONG_CONSTANT("TCP_CONGESTION", TCP_CONGESTION, CONST_PERSISTENT);
508 #endif
509 #if defined(SO_ZEROCOPY)
510 	REGISTER_LONG_CONSTANT("SO_ZEROCOPY", SO_ZEROCOPY, CONST_PERSISTENT);
511 #endif
512 #if defined(TCP_NODELAY)
513 	REGISTER_LONG_CONSTANT("TCP_NODELAY", TCP_NODELAY, CONST_PERSISTENT);
514 #endif
515 #if defined(TCP_NOTSENT_LOWAT)
516 	REGISTER_LONG_CONSTANT("TCP_NOTSENT_LOWAT", TCP_NOTSENT_LOWAT, CONST_PERSISTENT);
517 #endif
518 #if defined(TCP_DEFER_ACCEPT)
519 	REGISTER_LONG_CONSTANT("TCP_DEFER_ACCEPT", TCP_DEFER_ACCEPT, CONST_PERSISTENT);
520 #endif
521 #if defined(TCP_KEEPALIVE)
522 	REGISTER_LONG_CONSTANT("TCP_KEEPALIVE", TCP_KEEPALIVE, CONST_PERSISTENT);
523 #endif
524 #if defined(TCP_KEEPIDLE)
525 	REGISTER_LONG_CONSTANT("TCP_KEEPIDLE", TCP_KEEPIDLE, CONST_PERSISTENT);
526 #endif
527 #if defined(TCP_KEEPIDLE)
528 	REGISTER_LONG_CONSTANT("TCP_KEEPINTVL", TCP_KEEPINTVL, CONST_PERSISTENT);
529 #endif
530 #if defined(TCP_KEEPIDLE)
531 	REGISTER_LONG_CONSTANT("TCP_KEEPCNT", TCP_KEEPCNT, CONST_PERSISTENT);
532 #endif
533 	REGISTER_LONG_CONSTANT("PHP_NORMAL_READ", PHP_NORMAL_READ, CONST_PERSISTENT);
534 	REGISTER_LONG_CONSTANT("PHP_BINARY_READ", PHP_BINARY_READ, CONST_PERSISTENT);
535 	REGISTER_LONG_CONSTANT("MCAST_JOIN_GROUP", PHP_MCAST_JOIN_GROUP, CONST_PERSISTENT);
536 	REGISTER_LONG_CONSTANT("MCAST_LEAVE_GROUP", PHP_MCAST_LEAVE_GROUP, CONST_PERSISTENT);
537 #if defined(HAS_MCAST_EXT)
538 	REGISTER_LONG_CONSTANT("MCAST_BLOCK_SOURCE", PHP_MCAST_BLOCK_SOURCE, CONST_PERSISTENT);
539 #endif
540 #if defined(HAS_MCAST_EXT)
541 	REGISTER_LONG_CONSTANT("MCAST_UNBLOCK_SOURCE", PHP_MCAST_UNBLOCK_SOURCE, CONST_PERSISTENT);
542 #endif
543 #if defined(HAS_MCAST_EXT)
544 	REGISTER_LONG_CONSTANT("MCAST_JOIN_SOURCE_GROUP", PHP_MCAST_JOIN_SOURCE_GROUP, CONST_PERSISTENT);
545 #endif
546 #if defined(HAS_MCAST_EXT)
547 	REGISTER_LONG_CONSTANT("MCAST_LEAVE_SOURCE_GROUP", PHP_MCAST_LEAVE_SOURCE_GROUP, CONST_PERSISTENT);
548 #endif
549 	REGISTER_LONG_CONSTANT("IP_MULTICAST_IF", IP_MULTICAST_IF, CONST_PERSISTENT);
550 	REGISTER_LONG_CONSTANT("IP_MULTICAST_TTL", IP_MULTICAST_TTL, CONST_PERSISTENT);
551 	REGISTER_LONG_CONSTANT("IP_MULTICAST_LOOP", IP_MULTICAST_LOOP, CONST_PERSISTENT);
552 #if HAVE_IPV6
553 	REGISTER_LONG_CONSTANT("IPV6_MULTICAST_IF", IPV6_MULTICAST_IF, CONST_PERSISTENT);
554 #endif
555 #if HAVE_IPV6
556 	REGISTER_LONG_CONSTANT("IPV6_MULTICAST_HOPS", IPV6_MULTICAST_HOPS, CONST_PERSISTENT);
557 #endif
558 #if HAVE_IPV6
559 	REGISTER_LONG_CONSTANT("IPV6_MULTICAST_LOOP", IPV6_MULTICAST_LOOP, CONST_PERSISTENT);
560 #endif
561 #if defined(IPV6_V6ONLY)
562 	REGISTER_LONG_CONSTANT("IPV6_V6ONLY", IPV6_V6ONLY, CONST_PERSISTENT);
563 #endif
564 #if defined(EPERM)
565 	REGISTER_LONG_CONSTANT("SOCKET_EPERM", EPERM, CONST_PERSISTENT);
566 #endif
567 #if defined(ENOENT)
568 	REGISTER_LONG_CONSTANT("SOCKET_ENOENT", ENOENT, CONST_PERSISTENT);
569 #endif
570 #if defined(PHP_SOCKET_EINTR)
571 	REGISTER_LONG_CONSTANT("SOCKET_EINTR", PHP_SOCKET_EINTR, CONST_PERSISTENT);
572 #endif
573 #if defined(EIO)
574 	REGISTER_LONG_CONSTANT("SOCKET_EIO", EIO, CONST_PERSISTENT);
575 #endif
576 #if defined(ENXIO)
577 	REGISTER_LONG_CONSTANT("SOCKET_ENXIO", ENXIO, CONST_PERSISTENT);
578 #endif
579 #if defined(E2BIG)
580 	REGISTER_LONG_CONSTANT("SOCKET_E2BIG", E2BIG, CONST_PERSISTENT);
581 #endif
582 #if defined(PHP_SOCKET_EBADF)
583 	REGISTER_LONG_CONSTANT("SOCKET_EBADF", PHP_SOCKET_EBADF, CONST_PERSISTENT);
584 #endif
585 #if defined(EAGAIN)
586 	REGISTER_LONG_CONSTANT("SOCKET_EAGAIN", EAGAIN, CONST_PERSISTENT);
587 #endif
588 #if defined(ENOMEM)
589 	REGISTER_LONG_CONSTANT("SOCKET_ENOMEM", ENOMEM, CONST_PERSISTENT);
590 #endif
591 #if defined(PHP_SOCKET_EACCES)
592 	REGISTER_LONG_CONSTANT("SOCKET_EACCES", PHP_SOCKET_EACCES, CONST_PERSISTENT);
593 #endif
594 #if defined(PHP_SOCKET_EFAULT)
595 	REGISTER_LONG_CONSTANT("SOCKET_EFAULT", PHP_SOCKET_EFAULT, CONST_PERSISTENT);
596 #endif
597 #if defined(ENOTBLK)
598 	REGISTER_LONG_CONSTANT("SOCKET_ENOTBLK", ENOTBLK, CONST_PERSISTENT);
599 #endif
600 #if defined(EBUSY)
601 	REGISTER_LONG_CONSTANT("SOCKET_EBUSY", EBUSY, CONST_PERSISTENT);
602 #endif
603 #if defined(EEXIST)
604 	REGISTER_LONG_CONSTANT("SOCKET_EEXIST", EEXIST, CONST_PERSISTENT);
605 #endif
606 #if defined(EXDEV)
607 	REGISTER_LONG_CONSTANT("SOCKET_EXDEV", EXDEV, CONST_PERSISTENT);
608 #endif
609 #if defined(ENODEV)
610 	REGISTER_LONG_CONSTANT("SOCKET_ENODEV", ENODEV, CONST_PERSISTENT);
611 #endif
612 #if defined(ENOTDIR)
613 	REGISTER_LONG_CONSTANT("SOCKET_ENOTDIR", ENOTDIR, CONST_PERSISTENT);
614 #endif
615 #if defined(EISDIR)
616 	REGISTER_LONG_CONSTANT("SOCKET_EISDIR", EISDIR, CONST_PERSISTENT);
617 #endif
618 #if defined(PHP_SOCKET_EINVAL)
619 	REGISTER_LONG_CONSTANT("SOCKET_EINVAL", PHP_SOCKET_EINVAL, CONST_PERSISTENT);
620 #endif
621 #if defined(PHP_SOCKET_ENFILE)
622 	REGISTER_LONG_CONSTANT("SOCKET_ENFILE", PHP_SOCKET_ENFILE, CONST_PERSISTENT);
623 #endif
624 #if defined(PHP_SOCKET_EMFILE)
625 	REGISTER_LONG_CONSTANT("SOCKET_EMFILE", PHP_SOCKET_EMFILE, CONST_PERSISTENT);
626 #endif
627 #if defined(ENOTTY)
628 	REGISTER_LONG_CONSTANT("SOCKET_ENOTTY", ENOTTY, CONST_PERSISTENT);
629 #endif
630 #if defined(ENOSPC)
631 	REGISTER_LONG_CONSTANT("SOCKET_ENOSPC", ENOSPC, CONST_PERSISTENT);
632 #endif
633 #if defined(ESPIPE)
634 	REGISTER_LONG_CONSTANT("SOCKET_ESPIPE", ESPIPE, CONST_PERSISTENT);
635 #endif
636 #if defined(EROFS)
637 	REGISTER_LONG_CONSTANT("SOCKET_EROFS", EROFS, CONST_PERSISTENT);
638 #endif
639 #if defined(EMLINK)
640 	REGISTER_LONG_CONSTANT("SOCKET_EMLINK", EMLINK, CONST_PERSISTENT);
641 #endif
642 #if defined(EPIPE)
643 	REGISTER_LONG_CONSTANT("SOCKET_EPIPE", EPIPE, CONST_PERSISTENT);
644 #endif
645 #if defined(PHP_SOCKET_ENAMETOOLONG)
646 	REGISTER_LONG_CONSTANT("SOCKET_ENAMETOOLONG", PHP_SOCKET_ENAMETOOLONG, CONST_PERSISTENT);
647 #endif
648 #if defined(ENOLCK)
649 	REGISTER_LONG_CONSTANT("SOCKET_ENOLCK", ENOLCK, CONST_PERSISTENT);
650 #endif
651 #if defined(ENOSYS)
652 	REGISTER_LONG_CONSTANT("SOCKET_ENOSYS", ENOSYS, CONST_PERSISTENT);
653 #endif
654 #if defined(PHP_SOCKET_ENOTEMPTY)
655 	REGISTER_LONG_CONSTANT("SOCKET_ENOTEMPTY", PHP_SOCKET_ENOTEMPTY, CONST_PERSISTENT);
656 #endif
657 #if defined(PHP_SOCKET_ELOOP)
658 	REGISTER_LONG_CONSTANT("SOCKET_ELOOP", PHP_SOCKET_ELOOP, CONST_PERSISTENT);
659 #endif
660 #if defined(PHP_SOCKET_EWOULDBLOCK)
661 	REGISTER_LONG_CONSTANT("SOCKET_EWOULDBLOCK", PHP_SOCKET_EWOULDBLOCK, CONST_PERSISTENT);
662 #endif
663 #if defined(ENOMSG)
664 	REGISTER_LONG_CONSTANT("SOCKET_ENOMSG", ENOMSG, CONST_PERSISTENT);
665 #endif
666 #if defined(EIDRM)
667 	REGISTER_LONG_CONSTANT("SOCKET_EIDRM", EIDRM, CONST_PERSISTENT);
668 #endif
669 #if defined(ECHRNG)
670 	REGISTER_LONG_CONSTANT("SOCKET_ECHRNG", ECHRNG, CONST_PERSISTENT);
671 #endif
672 #if defined(EL2NSYNC)
673 	REGISTER_LONG_CONSTANT("SOCKET_EL2NSYNC", EL2NSYNC, CONST_PERSISTENT);
674 #endif
675 #if defined(EL3HLT)
676 	REGISTER_LONG_CONSTANT("SOCKET_EL3HLT", EL3HLT, CONST_PERSISTENT);
677 #endif
678 #if defined(EL3RST)
679 	REGISTER_LONG_CONSTANT("SOCKET_EL3RST", EL3RST, CONST_PERSISTENT);
680 #endif
681 #if defined(ELNRNG)
682 	REGISTER_LONG_CONSTANT("SOCKET_ELNRNG", ELNRNG, CONST_PERSISTENT);
683 #endif
684 #if defined(EUNATCH)
685 	REGISTER_LONG_CONSTANT("SOCKET_EUNATCH", EUNATCH, CONST_PERSISTENT);
686 #endif
687 #if defined(ENOCSI)
688 	REGISTER_LONG_CONSTANT("SOCKET_ENOCSI", ENOCSI, CONST_PERSISTENT);
689 #endif
690 #if defined(EL2HLT)
691 	REGISTER_LONG_CONSTANT("SOCKET_EL2HLT", EL2HLT, CONST_PERSISTENT);
692 #endif
693 #if defined(EBADE)
694 	REGISTER_LONG_CONSTANT("SOCKET_EBADE", EBADE, CONST_PERSISTENT);
695 #endif
696 #if defined(EBADR)
697 	REGISTER_LONG_CONSTANT("SOCKET_EBADR", EBADR, CONST_PERSISTENT);
698 #endif
699 #if defined(EXFULL)
700 	REGISTER_LONG_CONSTANT("SOCKET_EXFULL", EXFULL, CONST_PERSISTENT);
701 #endif
702 #if defined(ENOANO)
703 	REGISTER_LONG_CONSTANT("SOCKET_ENOANO", ENOANO, CONST_PERSISTENT);
704 #endif
705 #if defined(EBADRQC)
706 	REGISTER_LONG_CONSTANT("SOCKET_EBADRQC", EBADRQC, CONST_PERSISTENT);
707 #endif
708 #if defined(EBADSLT)
709 	REGISTER_LONG_CONSTANT("SOCKET_EBADSLT", EBADSLT, CONST_PERSISTENT);
710 #endif
711 #if defined(ENOSTR)
712 	REGISTER_LONG_CONSTANT("SOCKET_ENOSTR", ENOSTR, CONST_PERSISTENT);
713 #endif
714 #if defined(ENODATA)
715 	REGISTER_LONG_CONSTANT("SOCKET_ENODATA", ENODATA, CONST_PERSISTENT);
716 #endif
717 #if defined(ETIME)
718 	REGISTER_LONG_CONSTANT("SOCKET_ETIME", ETIME, CONST_PERSISTENT);
719 #endif
720 #if defined(ENOSR)
721 	REGISTER_LONG_CONSTANT("SOCKET_ENOSR", ENOSR, CONST_PERSISTENT);
722 #endif
723 #if defined(ENONET)
724 	REGISTER_LONG_CONSTANT("SOCKET_ENONET", ENONET, CONST_PERSISTENT);
725 #endif
726 #if defined(PHP_SOCKET_EREMOTE)
727 	REGISTER_LONG_CONSTANT("SOCKET_EREMOTE", PHP_SOCKET_EREMOTE, CONST_PERSISTENT);
728 #endif
729 #if defined(ENOLINK)
730 	REGISTER_LONG_CONSTANT("SOCKET_ENOLINK", ENOLINK, CONST_PERSISTENT);
731 #endif
732 #if defined(EADV)
733 	REGISTER_LONG_CONSTANT("SOCKET_EADV", EADV, CONST_PERSISTENT);
734 #endif
735 #if defined(ESRMNT)
736 	REGISTER_LONG_CONSTANT("SOCKET_ESRMNT", ESRMNT, CONST_PERSISTENT);
737 #endif
738 #if defined(ECOMM)
739 	REGISTER_LONG_CONSTANT("SOCKET_ECOMM", ECOMM, CONST_PERSISTENT);
740 #endif
741 #if defined(EPROTO)
742 	REGISTER_LONG_CONSTANT("SOCKET_EPROTO", EPROTO, CONST_PERSISTENT);
743 #endif
744 #if defined(EMULTIHOP)
745 	REGISTER_LONG_CONSTANT("SOCKET_EMULTIHOP", EMULTIHOP, CONST_PERSISTENT);
746 #endif
747 #if defined(EBADMSG)
748 	REGISTER_LONG_CONSTANT("SOCKET_EBADMSG", EBADMSG, CONST_PERSISTENT);
749 #endif
750 #if defined(ENOTUNIQ)
751 	REGISTER_LONG_CONSTANT("SOCKET_ENOTUNIQ", ENOTUNIQ, CONST_PERSISTENT);
752 #endif
753 #if defined(EBADFD)
754 	REGISTER_LONG_CONSTANT("SOCKET_EBADFD", EBADFD, CONST_PERSISTENT);
755 #endif
756 #if defined(EREMCHG)
757 	REGISTER_LONG_CONSTANT("SOCKET_EREMCHG", EREMCHG, CONST_PERSISTENT);
758 #endif
759 #if defined(ERESTART)
760 	REGISTER_LONG_CONSTANT("SOCKET_ERESTART", ERESTART, CONST_PERSISTENT);
761 #endif
762 #if defined(ESTRPIPE)
763 	REGISTER_LONG_CONSTANT("SOCKET_ESTRPIPE", ESTRPIPE, CONST_PERSISTENT);
764 #endif
765 #if defined(PHP_SOCKET_EUSERS)
766 	REGISTER_LONG_CONSTANT("SOCKET_EUSERS", PHP_SOCKET_EUSERS, CONST_PERSISTENT);
767 #endif
768 #if defined(PHP_SOCKET_ENOTSOCK)
769 	REGISTER_LONG_CONSTANT("SOCKET_ENOTSOCK", PHP_SOCKET_ENOTSOCK, CONST_PERSISTENT);
770 #endif
771 #if defined(PHP_SOCKET_EDESTADDRREQ)
772 	REGISTER_LONG_CONSTANT("SOCKET_EDESTADDRREQ", PHP_SOCKET_EDESTADDRREQ, CONST_PERSISTENT);
773 #endif
774 #if defined(PHP_SOCKET_EMSGSIZE)
775 	REGISTER_LONG_CONSTANT("SOCKET_EMSGSIZE", PHP_SOCKET_EMSGSIZE, CONST_PERSISTENT);
776 #endif
777 #if defined(PHP_SOCKET_EPROTOTYPE)
778 	REGISTER_LONG_CONSTANT("SOCKET_EPROTOTYPE", PHP_SOCKET_EPROTOTYPE, CONST_PERSISTENT);
779 #endif
780 #if defined(PHP_SOCKET_ENOPROTOOPT)
781 	REGISTER_LONG_CONSTANT("SOCKET_ENOPROTOOPT", PHP_SOCKET_ENOPROTOOPT, CONST_PERSISTENT);
782 #endif
783 #if defined(PHP_SOCKET_EPROTONOSUPPORT)
784 	REGISTER_LONG_CONSTANT("SOCKET_EPROTONOSUPPORT", PHP_SOCKET_EPROTONOSUPPORT, CONST_PERSISTENT);
785 #endif
786 #if defined(PHP_SOCKET_ESOCKTNOSUPPORT)
787 	REGISTER_LONG_CONSTANT("SOCKET_ESOCKTNOSUPPORT", PHP_SOCKET_ESOCKTNOSUPPORT, CONST_PERSISTENT);
788 #endif
789 #if defined(PHP_SOCKET_EOPNOTSUPP)
790 	REGISTER_LONG_CONSTANT("SOCKET_EOPNOTSUPP", PHP_SOCKET_EOPNOTSUPP, CONST_PERSISTENT);
791 #endif
792 #if defined(PHP_SOCKET_EPFNOSUPPORT)
793 	REGISTER_LONG_CONSTANT("SOCKET_EPFNOSUPPORT", PHP_SOCKET_EPFNOSUPPORT, CONST_PERSISTENT);
794 #endif
795 #if defined(PHP_SOCKET_EAFNOSUPPORT)
796 	REGISTER_LONG_CONSTANT("SOCKET_EAFNOSUPPORT", PHP_SOCKET_EAFNOSUPPORT, CONST_PERSISTENT);
797 #endif
798 #if defined(PHP_SOCKET_EADDRINUSE)
799 	REGISTER_LONG_CONSTANT("SOCKET_EADDRINUSE", PHP_SOCKET_EADDRINUSE, CONST_PERSISTENT);
800 #endif
801 #if defined(PHP_SOCKET_EADDRNOTAVAIL)
802 	REGISTER_LONG_CONSTANT("SOCKET_EADDRNOTAVAIL", PHP_SOCKET_EADDRNOTAVAIL, CONST_PERSISTENT);
803 #endif
804 #if defined(PHP_SOCKET_ENETDOWN)
805 	REGISTER_LONG_CONSTANT("SOCKET_ENETDOWN", PHP_SOCKET_ENETDOWN, CONST_PERSISTENT);
806 #endif
807 #if defined(PHP_SOCKET_ENETUNREACH)
808 	REGISTER_LONG_CONSTANT("SOCKET_ENETUNREACH", PHP_SOCKET_ENETUNREACH, CONST_PERSISTENT);
809 #endif
810 #if defined(PHP_SOCKET_ENETRESET)
811 	REGISTER_LONG_CONSTANT("SOCKET_ENETRESET", PHP_SOCKET_ENETRESET, CONST_PERSISTENT);
812 #endif
813 #if defined(PHP_SOCKET_ECONNABORTED)
814 	REGISTER_LONG_CONSTANT("SOCKET_ECONNABORTED", PHP_SOCKET_ECONNABORTED, CONST_PERSISTENT);
815 #endif
816 #if defined(PHP_SOCKET_ECONNRESET)
817 	REGISTER_LONG_CONSTANT("SOCKET_ECONNRESET", PHP_SOCKET_ECONNRESET, CONST_PERSISTENT);
818 #endif
819 #if defined(PHP_SOCKET_ENOBUFS)
820 	REGISTER_LONG_CONSTANT("SOCKET_ENOBUFS", PHP_SOCKET_ENOBUFS, CONST_PERSISTENT);
821 #endif
822 #if defined(PHP_SOCKET_EISCONN)
823 	REGISTER_LONG_CONSTANT("SOCKET_EISCONN", PHP_SOCKET_EISCONN, CONST_PERSISTENT);
824 #endif
825 #if defined(PHP_SOCKET_ENOTCONN)
826 	REGISTER_LONG_CONSTANT("SOCKET_ENOTCONN", PHP_SOCKET_ENOTCONN, CONST_PERSISTENT);
827 #endif
828 #if defined(PHP_SOCKET_ESHUTDOWN)
829 	REGISTER_LONG_CONSTANT("SOCKET_ESHUTDOWN", PHP_SOCKET_ESHUTDOWN, CONST_PERSISTENT);
830 #endif
831 #if defined(PHP_SOCKET_ETOOMANYREFS)
832 	REGISTER_LONG_CONSTANT("SOCKET_ETOOMANYREFS", PHP_SOCKET_ETOOMANYREFS, CONST_PERSISTENT);
833 #endif
834 #if defined(PHP_SOCKET_ETIMEDOUT)
835 	REGISTER_LONG_CONSTANT("SOCKET_ETIMEDOUT", PHP_SOCKET_ETIMEDOUT, CONST_PERSISTENT);
836 #endif
837 #if defined(PHP_SOCKET_ECONNREFUSED)
838 	REGISTER_LONG_CONSTANT("SOCKET_ECONNREFUSED", PHP_SOCKET_ECONNREFUSED, CONST_PERSISTENT);
839 #endif
840 #if defined(PHP_SOCKET_EHOSTDOWN)
841 	REGISTER_LONG_CONSTANT("SOCKET_EHOSTDOWN", PHP_SOCKET_EHOSTDOWN, CONST_PERSISTENT);
842 #endif
843 #if defined(PHP_SOCKET_EHOSTUNREACH)
844 	REGISTER_LONG_CONSTANT("SOCKET_EHOSTUNREACH", PHP_SOCKET_EHOSTUNREACH, CONST_PERSISTENT);
845 #endif
846 #if defined(PHP_SOCKET_EALREADY)
847 	REGISTER_LONG_CONSTANT("SOCKET_EALREADY", PHP_SOCKET_EALREADY, CONST_PERSISTENT);
848 #endif
849 #if defined(PHP_SOCKET_EINPROGRESS)
850 	REGISTER_LONG_CONSTANT("SOCKET_EINPROGRESS", PHP_SOCKET_EINPROGRESS, CONST_PERSISTENT);
851 #endif
852 #if defined(EISNAM)
853 	REGISTER_LONG_CONSTANT("SOCKET_EISNAM", EISNAM, CONST_PERSISTENT);
854 #endif
855 #if defined(EREMOTEIO)
856 	REGISTER_LONG_CONSTANT("SOCKET_EREMOTEIO", EREMOTEIO, CONST_PERSISTENT);
857 #endif
858 #if defined(PHP_SOCKET_EDQUOT)
859 	REGISTER_LONG_CONSTANT("SOCKET_EDQUOT", PHP_SOCKET_EDQUOT, CONST_PERSISTENT);
860 #endif
861 #if defined(ENOMEDIUM)
862 	REGISTER_LONG_CONSTANT("SOCKET_ENOMEDIUM", ENOMEDIUM, CONST_PERSISTENT);
863 #endif
864 #if defined(EMEDIUMTYPE)
865 	REGISTER_LONG_CONSTANT("SOCKET_EMEDIUMTYPE", EMEDIUMTYPE, CONST_PERSISTENT);
866 #endif
867 #if defined(WIN32)
868 	REGISTER_LONG_CONSTANT("SOCKET_ESTALE", WSAESTALE, CONST_PERSISTENT);
869 #endif
870 #if defined(WIN32)
871 	REGISTER_LONG_CONSTANT("SOCKET_EDISCON", WSAEDISCON, CONST_PERSISTENT);
872 #endif
873 #if defined(WIN32)
874 	REGISTER_LONG_CONSTANT("SOCKET_SYSNOTREADY", WSASYSNOTREADY, CONST_PERSISTENT);
875 #endif
876 #if defined(WIN32)
877 	REGISTER_LONG_CONSTANT("SOCKET_VERNOTSUPPORTED", WSAVERNOTSUPPORTED, CONST_PERSISTENT);
878 #endif
879 #if defined(WIN32)
880 	REGISTER_LONG_CONSTANT("SOCKET_NOTINITIALISED", WSANOTINITIALISED, CONST_PERSISTENT);
881 #endif
882 #if defined(WIN32)
883 	REGISTER_LONG_CONSTANT("SOCKET_HOST_NOT_FOUND", WSAHOST_NOT_FOUND, CONST_PERSISTENT);
884 #endif
885 #if defined(WIN32)
886 	REGISTER_LONG_CONSTANT("SOCKET_TRY_AGAIN", WSATRY_AGAIN, CONST_PERSISTENT);
887 #endif
888 #if defined(WIN32)
889 	REGISTER_LONG_CONSTANT("SOCKET_NO_RECOVERY", WSANO_RECOVERY, CONST_PERSISTENT);
890 #endif
891 #if defined(WIN32)
892 	REGISTER_LONG_CONSTANT("SOCKET_NO_DATA", WSANO_DATA, CONST_PERSISTENT);
893 #endif
894 #if defined(WIN32)
895 	REGISTER_LONG_CONSTANT("SOCKET_NO_ADDRESS", WSANO_ADDRESS, CONST_PERSISTENT);
896 #endif
897 	REGISTER_LONG_CONSTANT("IPPROTO_IP", IPPROTO_IP, CONST_PERSISTENT);
898 #if HAVE_IPV6
899 	REGISTER_LONG_CONSTANT("IPPROTO_IPV6", IPPROTO_IPV6, CONST_PERSISTENT);
900 #endif
901 	REGISTER_LONG_CONSTANT("SOL_TCP", IPPROTO_TCP, CONST_PERSISTENT);
902 	REGISTER_LONG_CONSTANT("SOL_UDP", IPPROTO_UDP, CONST_PERSISTENT);
903 #if HAVE_IPV6
904 	REGISTER_LONG_CONSTANT("IPV6_UNICAST_HOPS", IPV6_UNICAST_HOPS, CONST_PERSISTENT);
905 #endif
906 	REGISTER_LONG_CONSTANT("AI_PASSIVE", AI_PASSIVE, CONST_PERSISTENT);
907 	REGISTER_LONG_CONSTANT("AI_CANONNAME", AI_CANONNAME, CONST_PERSISTENT);
908 	REGISTER_LONG_CONSTANT("AI_NUMERICHOST", AI_NUMERICHOST, CONST_PERSISTENT);
909 #if HAVE_AI_V4MAPPED
910 	REGISTER_LONG_CONSTANT("AI_V4MAPPED", AI_V4MAPPED, CONST_PERSISTENT);
911 #endif
912 #if HAVE_AI_ALL
913 	REGISTER_LONG_CONSTANT("AI_ALL", AI_ALL, CONST_PERSISTENT);
914 #endif
915 	REGISTER_LONG_CONSTANT("AI_ADDRCONFIG", AI_ADDRCONFIG, CONST_PERSISTENT);
916 #if HAVE_AI_IDN
917 	REGISTER_LONG_CONSTANT("AI_IDN", AI_IDN, CONST_PERSISTENT);
918 #endif
919 #if HAVE_AI_IDN
920 	REGISTER_LONG_CONSTANT("AI_CANONIDN", AI_CANONIDN, CONST_PERSISTENT);
921 #endif
922 #if defined(AI_NUMERICSERV)
923 	REGISTER_LONG_CONSTANT("AI_NUMERICSERV", AI_NUMERICSERV, CONST_PERSISTENT);
924 #endif
925 #if defined(SOL_LOCAL)
926 	REGISTER_LONG_CONSTANT("SOL_LOCAL", SOL_LOCAL, CONST_PERSISTENT);
927 #endif
928 #if (defined(IPV6_RECVPKTINFO) && HAVE_IPV6)
929 	REGISTER_LONG_CONSTANT("IPV6_RECVPKTINFO", IPV6_RECVPKTINFO, CONST_PERSISTENT);
930 #endif
931 #if (defined(IPV6_RECVPKTINFO) && HAVE_IPV6)
932 	REGISTER_LONG_CONSTANT("IPV6_PKTINFO", IPV6_PKTINFO, CONST_PERSISTENT);
933 #endif
934 #if (defined(IPV6_RECVHOPLIMIT) && HAVE_IPV6)
935 	REGISTER_LONG_CONSTANT("IPV6_RECVHOPLIMIT", IPV6_RECVHOPLIMIT, CONST_PERSISTENT);
936 #endif
937 #if (defined(IPV6_RECVHOPLIMIT) && HAVE_IPV6)
938 	REGISTER_LONG_CONSTANT("IPV6_HOPLIMIT", IPV6_HOPLIMIT, CONST_PERSISTENT);
939 #endif
940 #if (defined(IPV6_RECVTCLASS) && HAVE_IPV6)
941 	REGISTER_LONG_CONSTANT("IPV6_RECVTCLASS", IPV6_RECVTCLASS, CONST_PERSISTENT);
942 #endif
943 #if (defined(IPV6_RECVTCLASS) && HAVE_IPV6)
944 	REGISTER_LONG_CONSTANT("IPV6_TCLASS", IPV6_TCLASS, CONST_PERSISTENT);
945 #endif
946 #if defined(SCM_RIGHTS)
947 	REGISTER_LONG_CONSTANT("SCM_RIGHTS", SCM_RIGHTS, CONST_PERSISTENT);
948 #endif
949 #if defined(SO_PASSCRED) && defined(SCM_CREDENTIALS)
950 	REGISTER_LONG_CONSTANT("SCM_CREDENTIALS", SCM_CREDENTIALS, CONST_PERSISTENT);
951 #endif
952 #if defined(SO_PASSCRED) && !(defined(SCM_CREDENTIALS))
953 	REGISTER_LONG_CONSTANT("SCM_CREDS", SCM_CREDS, CONST_PERSISTENT);
954 #endif
955 #if defined(SO_PASSCRED)
956 	REGISTER_LONG_CONSTANT("SO_PASSCRED", SO_PASSCRED, CONST_PERSISTENT);
957 #endif
958 #if defined(LOCAL_CREDS_PERSISTENT)
959 	REGISTER_LONG_CONSTANT("SCM_CREDS2", SCM_CREDS2, CONST_PERSISTENT);
960 #endif
961 #if defined(LOCAL_CREDS_PERSISTENT)
962 	REGISTER_LONG_CONSTANT("LOCAL_CREDS_PERSISTENT", LOCAL_CREDS_PERSISTENT, CONST_PERSISTENT);
963 #endif
964 #if (!defined(LOCAL_CREDS_PERSISTENT) && defined(LOCAL_CREDS))
965 	REGISTER_LONG_CONSTANT("SCM_CREDS", SCM_CREDS, CONST_PERSISTENT);
966 #endif
967 #if (!defined(LOCAL_CREDS_PERSISTENT) && defined(LOCAL_CREDS))
968 	REGISTER_LONG_CONSTANT("LOCAL_CREDS", LOCAL_CREDS, CONST_PERSISTENT);
969 #endif
970 }
971 
register_class_Socket(void)972 static zend_class_entry *register_class_Socket(void)
973 {
974 	zend_class_entry ce, *class_entry;
975 
976 	INIT_CLASS_ENTRY(ce, "Socket", class_Socket_methods);
977 	class_entry = zend_register_internal_class_ex(&ce, NULL);
978 	class_entry->ce_flags |= ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE;
979 
980 	return class_entry;
981 }
982 
register_class_AddressInfo(void)983 static zend_class_entry *register_class_AddressInfo(void)
984 {
985 	zend_class_entry ce, *class_entry;
986 
987 	INIT_CLASS_ENTRY(ce, "AddressInfo", class_AddressInfo_methods);
988 	class_entry = zend_register_internal_class_ex(&ce, NULL);
989 	class_entry->ce_flags |= ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE;
990 
991 	return class_entry;
992 }
993