Skip to content

Commit 98e5c4e

Browse files
authored
Declare ext/sockets constants in stubs (#9349)
1 parent 0c4c9fb commit 98e5c4e

8 files changed

+2600
-813
lines changed

ext/sockets/php_sockets.h

+269
Original file line numberDiff line numberDiff line change
@@ -136,4 +136,273 @@ PHP_SOCKETS_API int socket_import_file_descriptor(PHP_SOCKET socket, php_socket
136136
# define ss_family __ss_family
137137
#endif
138138

139+
#ifndef MSG_EOF
140+
#ifdef MSG_FIN
141+
#define MSG_EOF MSG_FIN
142+
#endif
143+
#endif
144+
145+
#ifndef MSG_WAITALL
146+
#ifdef LINUX
147+
#define MSG_WAITALL 0x00000100
148+
#else
149+
#define MSG_WAITALL 0x00000000
150+
#endif
151+
#endif
152+
153+
#define PHP_NORMAL_READ 0x0001
154+
#define PHP_BINARY_READ 0x0002
155+
156+
#ifdef WIN32
157+
#define PHP_SOCKET_EINTR WSAEINTR
158+
#elif defined(EINTR)
159+
#define PHP_SOCKET_EINTR EINTR
160+
#endif
161+
162+
#ifdef WIN32
163+
#define PHP_SOCKET_EBADF WSAEBADF
164+
#elif defined(EBADF)
165+
#define PHP_SOCKET_EBADF EBADF
166+
#endif
167+
168+
#ifdef WIN32
169+
#define PHP_SOCKET_EACCES WSAEACCES
170+
#elif defined(EACCES)
171+
#define PHP_SOCKET_EACCES EACCES
172+
#endif
173+
174+
#ifdef WIN32
175+
#define PHP_SOCKET_EFAULT WSAEFAULT
176+
#elif defined(EFAULT)
177+
#define PHP_SOCKET_EFAULT EFAULT
178+
#endif
179+
180+
#ifdef WIN32
181+
#define PHP_SOCKET_EINVAL WSAEINVAL
182+
#elif defined(EINVAL)
183+
#define PHP_SOCKET_EINVAL EINVAL
184+
#endif
185+
186+
#ifdef WIN32
187+
#define PHP_SOCKET_EMFILE WSAEMFILE
188+
#elif defined(EMFILE)
189+
#define PHP_SOCKET_ENFILE EMFILE
190+
#endif
191+
192+
#ifdef WIN32
193+
#define PHP_SOCKET_EWOULDBLOCK WSAEWOULDBLOCK
194+
#elif defined(EWOULDBLOCK)
195+
#define PHP_SOCKET_EWOULDBLOCK EWOULDBLOCK
196+
#endif
197+
198+
#ifdef WIN32
199+
#define PHP_SOCKET_EINPROGRESS WSAEINPROGRESS
200+
#elif defined(EINPROGRESS)
201+
#define PHP_SOCKET_EINPROGRESS EINPROGRESS
202+
#endif
203+
204+
#ifdef WIN32
205+
#define PHP_SOCKET_EALREADY WSAEALREADY
206+
#elif defined(EALREADY)
207+
#define PHP_SOCKET_EALREADY EALREADY
208+
#endif
209+
210+
#ifdef WIN32
211+
#define PHP_SOCKET_ENOTSOCK WSAENOTSOCK
212+
#elif defined(ENOTSOCK)
213+
#define PHP_SOCKET_ENOTSOCK ENOTSOCK
214+
#endif
215+
216+
#ifdef WIN32
217+
#define PHP_SOCKET_EDESTADDRREQ WSAEDESTADDRREQ
218+
#elif defined(EDESTADDRREQ)
219+
#define PHP_SOCKET_EDESTADDRREQ EDESTADDRREQ
220+
#endif
221+
222+
#ifdef WIN32
223+
#define PHP_SOCKET_EMSGSIZE WSAEMSGSIZE
224+
#elif defined(EMSGSIZE)
225+
#define PHP_SOCKET_EMSGSIZE EMSGSIZE
226+
#endif
227+
228+
#ifdef WIN32
229+
#define PHP_SOCKET_EPROTOTYPE WSAEPROTOTYPE
230+
#elif defined(EPROTOTYPE)
231+
#define PHP_SOCKET_EPROTOTYPE EPROTOTYPE
232+
#endif
233+
234+
#ifdef WIN32
235+
#define PHP_SOCKET_ENOPROTOOPT WSAENOPROTOOPT
236+
#elif defined(ENOPROTOOPT)
237+
#define PHP_SOCKET_ENOPROTOOPT ENOPROTOOPT
238+
#endif
239+
240+
#ifdef WIN32
241+
#define PHP_SOCKET_EPROTONOSUPPORT WSAEPROTONOSUPPORT
242+
#elif defined(EPROTONOSUPPORT)
243+
#define PHP_SOCKET_EPROTONOSUPPORT EPROTONOSUPPORT
244+
#endif
245+
246+
#ifdef WIN32
247+
#define PHP_SOCKET_ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
248+
#elif defined(ESOCKTNOSUPPORT)
249+
#define PHP_SOCKET_ESOCKTNOSUPPORT ESOCKTNOSUPPORT
250+
#endif
251+
252+
#ifdef WIN32
253+
#define PHP_SOCKET_EOPNOTSUPP WSAEOPNOTSUPP
254+
#elif defined(EOPNOTSUPP)
255+
#define PHP_SOCKET_EOPNOTSUPP EOPNOTSUPP
256+
#endif
257+
258+
#ifdef WIN32
259+
#define PHP_SOCKET_EPFNOSUPPORT WSAEPFNOSUPPORT
260+
#elif defined(EOPNOTSUPP)
261+
#define PHP_SOCKET_EPFNOSUPPORT EPFNOSUPPORT
262+
#endif
263+
264+
#ifdef WIN32
265+
#define PHP_SOCKET_EAFNOSUPPORT WSAEAFNOSUPPORT
266+
#elif defined(EAFNOSUPPORT)
267+
#define PHP_SOCKET_EAFNOSUPPORT EAFNOSUPPORT
268+
#endif
269+
270+
#ifdef WIN32
271+
#define PHP_SOCKET_EADDRINUSE WSAEADDRINUSE
272+
#elif defined(EADDRINUSE)
273+
#define PHP_SOCKET_EADDRINUSE EADDRINUSE
274+
#endif
275+
276+
#ifdef WIN32
277+
#define PHP_SOCKET_EADDRNOTAVAIL WSAEADDRNOTAVAIL
278+
#elif defined(EADDRNOTAVAIL)
279+
#define PHP_SOCKET_EADDRNOTAVAIL EADDRNOTAVAIL
280+
#endif
281+
282+
#ifdef WIN32
283+
#define PHP_SOCKET_ENETDOWN WSAENETDOWN
284+
#elif defined(ENETDOWN)
285+
#define PHP_SOCKET_ENETDOWN ENETDOWN
286+
#endif
287+
288+
#ifdef WIN32
289+
#define PHP_SOCKET_ENETUNREACH WSAENETUNREACH
290+
#elif defined(ENETUNREACH)
291+
#define PHP_SOCKET_ENETUNREACH ENETUNREACH
292+
#endif
293+
294+
#ifdef WIN32
295+
#define PHP_SOCKET_ENETRESET WSAENETRESET
296+
#elif defined(WSAENETRESET)
297+
#define PHP_SOCKET_ENETRESET ENETUNREACH
298+
#endif
299+
300+
#ifdef WIN32
301+
#define PHP_SOCKET_ECONNABORTED WSAECONNABORTED
302+
#elif defined(ECONNABORTED)
303+
#define PHP_SOCKET_ECONNABORTED ECONNABORTED
304+
#endif
305+
306+
#ifdef WIN32
307+
#define PHP_SOCKET_ECONNRESET WSAECONNABORTED
308+
#elif defined(ECONNABORTED)
309+
#define PHP_SOCKET_ECONNRESET ECONNABORTED
310+
#endif
311+
312+
#ifdef WIN32
313+
#define PHP_SOCKET_ENOBUFS WSAENOBUFS
314+
#elif defined(ENOBUFS)
315+
#define PHP_SOCKET_ENOBUFS ENOBUFS
316+
#endif
317+
318+
#ifdef WIN32
319+
#define PHP_SOCKET_EISCONN WSAEISCONN
320+
#elif defined(EISCONN)
321+
#define PHP_SOCKET_EISCONN EISCONN
322+
#endif
323+
324+
#ifdef WIN32
325+
#define PHP_SOCKET_ENOTCONN WSAENOTCONN
326+
#elif defined(ENOTCONN)
327+
#define PHP_SOCKET_ENOTCONN ENOTCONN
328+
#endif
329+
330+
#ifdef WIN32
331+
#define PHP_SOCKET_ESHUTDOWN WSAESHUTDOWN
332+
#elif defined(EISCONN)
333+
#define PHP_SOCKET_ESHUTDOWN ESHUTDOWN
334+
#endif
335+
336+
#ifdef WIN32
337+
#define PHP_SOCKET_ETOOMANYREFS WSAETOOMANYREFS
338+
#elif defined(EISCONN)
339+
#define PHP_SOCKET_ETOOMANYREFS ETOOMANYREFS
340+
#endif
341+
342+
#ifdef WIN32
343+
#define PHP_SOCKET_ETOOMANYREFS WSAETOOMANYREFS
344+
#elif defined(ETOOMANYREFS)
345+
#define PHP_SOCKET_ETOOMANYREFS ETOOMANYREFS
346+
#endif
347+
348+
#ifdef WIN32
349+
#define PHP_SOCKET_ETIMEDOUT WSAETIMEDOUT
350+
#elif defined(ETIMEDOUT)
351+
#define PHP_SOCKET_ETIMEDOUT ETIMEDOUT
352+
#endif
353+
354+
#ifdef WIN32
355+
#define PHP_SOCKET_ECONNREFUSED WSAECONNREFUSED
356+
#elif defined(ECONNREFUSED)
357+
#define PHP_SOCKET_ECONNREFUSED ECONNREFUSED
358+
#endif
359+
360+
#ifdef WIN32
361+
#define PHP_SOCKET_ELOOP WSAELOOP
362+
#elif defined(ELOOP)
363+
#define PHP_SOCKET_ELOOP ELOOP
364+
#endif
365+
366+
#ifdef WIN32
367+
#define PHP_SOCKET_ENAMETOOLONG WSAENAMETOOLONG
368+
#elif defined(ENAMETOOLONG)
369+
#define PHP_SOCKET_ENAMETOOLONG ENAMETOOLONG
370+
#endif
371+
372+
#ifdef WIN32
373+
#define PHP_SOCKET_EHOSTDOWN WSAEHOSTDOWN
374+
#elif defined(EHOSTDOWN)
375+
#define PHP_SOCKET_EHOSTDOWN EHOSTDOWN
376+
#endif
377+
378+
#ifdef WIN32
379+
#define PHP_SOCKET_EHOSTUNREACH WSAEHOSTUNREACH
380+
#elif defined(EHOSTUNREACH)
381+
#define PHP_SOCKET_EHOSTUNREACH EHOSTUNREACH
382+
#endif
383+
384+
#ifdef WIN32
385+
#define PHP_SOCKET_ENOTEMPTY WSAENOTEMPTY
386+
#elif defined(ENOTEMPTY)
387+
#define PHP_SOCKET_ENOTEMPTY ENOTEMPTY
388+
#endif
389+
390+
#ifdef WIN32
391+
#define PHP_SOCKET_EUSERS WSAEUSERS
392+
#elif defined(EUSERS)
393+
#define PHP_SOCKET_EUSERS EUSERS
394+
#endif
395+
396+
#ifdef WIN32
397+
#define PHP_SOCKET_EDQUOT WSAEDQUOT
398+
#elif defined(EDQUOT)
399+
#define PHP_SOCKET_EDQUOT EDQUOT
400+
#endif
401+
402+
#ifdef WIN32
403+
#define PHP_SOCKET_EREMOTE WSAEREMOTE
404+
#elif defined(EREMOTE)
405+
#define PHP_SOCKET_EREMOTE EREMOTE
406+
#endif
407+
139408
#endif

ext/sockets/sendrecvmsg.c

-46
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@
3535
#ifdef PHP_WIN32
3636
#include "windows_common.h"
3737
#include <Mswsock.h>
38-
#define IPV6_RECVPKTINFO IPV6_PKTINFO
39-
#define IPV6_RECVHOPLIMIT IPV6_HOPLIMIT
4038
#define msghdr _WSAMSG
4139

4240
static GUID WSARecvMsg_GUID = WSAID_WSARECVMSG;
@@ -424,50 +422,6 @@ int php_do_getsockopt_ipv6_rfc3542(php_socket *php_sock, int level, int optname,
424422

425423
void php_socket_sendrecvmsg_init(INIT_FUNC_ARGS)
426424
{
427-
/* IPv6 ancillary data */
428-
#if defined(IPV6_RECVPKTINFO) && HAVE_IPV6
429-
REGISTER_LONG_CONSTANT("IPV6_RECVPKTINFO", IPV6_RECVPKTINFO, CONST_CS | CONST_PERSISTENT);
430-
REGISTER_LONG_CONSTANT("IPV6_PKTINFO", IPV6_PKTINFO, CONST_CS | CONST_PERSISTENT);
431-
#endif
432-
#if defined(IPV6_RECVHOPLIMIT) && HAVE_IPV6
433-
REGISTER_LONG_CONSTANT("IPV6_RECVHOPLIMIT", IPV6_RECVHOPLIMIT, CONST_CS | CONST_PERSISTENT);
434-
REGISTER_LONG_CONSTANT("IPV6_HOPLIMIT", IPV6_HOPLIMIT, CONST_CS | CONST_PERSISTENT);
435-
#endif
436-
/* would require some effort:
437-
REGISTER_LONG_CONSTANT("IPV6_RECVRTHDR", IPV6_RECVRTHDR, CONST_CS | CONST_PERSISTENT);
438-
REGISTER_LONG_CONSTANT("IPV6_RECVHOPOPTS", IPV6_RECVHOPOPTS, CONST_CS | CONST_PERSISTENT);
439-
REGISTER_LONG_CONSTANT("IPV6_RECVDSTOPTS", IPV6_RECVDSTOPTS, CONST_CS | CONST_PERSISTENT);
440-
*/
441-
#if defined(IPV6_RECVTCLASS) && HAVE_IPV6
442-
REGISTER_LONG_CONSTANT("IPV6_RECVTCLASS", IPV6_RECVTCLASS, CONST_CS | CONST_PERSISTENT);
443-
REGISTER_LONG_CONSTANT("IPV6_TCLASS", IPV6_TCLASS, CONST_CS | CONST_PERSISTENT);
444-
#endif
445-
446-
/*
447-
REGISTER_LONG_CONSTANT("IPV6_RTHDR", IPV6_RTHDR, CONST_CS | CONST_PERSISTENT);
448-
REGISTER_LONG_CONSTANT("IPV6_HOPOPTS", IPV6_HOPOPTS, CONST_CS | CONST_PERSISTENT);
449-
REGISTER_LONG_CONSTANT("IPV6_DSTOPTS", IPV6_DSTOPTS, CONST_CS | CONST_PERSISTENT);
450-
*/
451-
452-
#ifdef SCM_RIGHTS
453-
REGISTER_LONG_CONSTANT("SCM_RIGHTS", SCM_RIGHTS, CONST_CS | CONST_PERSISTENT);
454-
#endif
455-
#ifdef SO_PASSCRED
456-
#ifdef SCM_CREDENTIALS
457-
REGISTER_LONG_CONSTANT("SCM_CREDENTIALS", SCM_CREDENTIALS, CONST_CS | CONST_PERSISTENT);
458-
#else
459-
REGISTER_LONG_CONSTANT("SCM_CREDS", SCM_CREDS, CONST_CS | CONST_PERSISTENT);
460-
#endif
461-
REGISTER_LONG_CONSTANT("SO_PASSCRED", SO_PASSCRED, CONST_CS | CONST_PERSISTENT);
462-
#endif
463-
#if defined(LOCAL_CREDS_PERSISTENT)
464-
REGISTER_LONG_CONSTANT("SCM_CREDS2", SCM_CREDS2, CONST_CS | CONST_PERSISTENT);
465-
REGISTER_LONG_CONSTANT("LOCAL_CREDS_PERSISTENT", LOCAL_CREDS_PERSISTENT, CONST_CS | CONST_PERSISTENT);
466-
#elif defined(LOCAL_CREDS)
467-
REGISTER_LONG_CONSTANT("SCM_CREDS", SCM_CREDS, CONST_CS | CONST_PERSISTENT);
468-
REGISTER_LONG_CONSTANT("LOCAL_CREDS", LOCAL_CREDS, CONST_CS | CONST_PERSISTENT);
469-
#endif
470-
471425
#ifdef ZTS
472426
ancillary_mutex = tsrm_mutex_alloc();
473427
#endif

ext/sockets/sendrecvmsg.h

+5
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@
66

77
/* for sockets.c */
88

9+
#ifdef PHP_WIN32
10+
#define IPV6_RECVPKTINFO IPV6_PKTINFO
11+
#define IPV6_RECVHOPLIMIT IPV6_HOPLIMIT
12+
#endif
13+
914
void php_socket_sendrecvmsg_init(INIT_FUNC_ARGS);
1015
void php_socket_sendrecvmsg_shutdown(SHUTDOWN_FUNC_ARGS);
1116

0 commit comments

Comments
 (0)