xref: /PHP-8.1/ext/sockets/sockets_arginfo.h (revision d9e5e630)
1 /* This is a generated file, edit the .stub.php file instead.
2  * Stub hash: bc0f8cd2cab1e077231ed74a9be15a88f5a08e4b */
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_class_Socket(void)325 static zend_class_entry *register_class_Socket(void)
326 {
327 	zend_class_entry ce, *class_entry;
328 
329 	INIT_CLASS_ENTRY(ce, "Socket", class_Socket_methods);
330 	class_entry = zend_register_internal_class_ex(&ce, NULL);
331 	class_entry->ce_flags |= ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE;
332 
333 	return class_entry;
334 }
335 
register_class_AddressInfo(void)336 static zend_class_entry *register_class_AddressInfo(void)
337 {
338 	zend_class_entry ce, *class_entry;
339 
340 	INIT_CLASS_ENTRY(ce, "AddressInfo", class_AddressInfo_methods);
341 	class_entry = zend_register_internal_class_ex(&ce, NULL);
342 	class_entry->ce_flags |= ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE;
343 
344 	return class_entry;
345 }
346