diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/sockets/php_sockets.h | 3 | ||||
| -rw-r--r-- | ext/sockets/sendrecvmsg.c | 6 | ||||
| -rw-r--r-- | ext/sockets/windows_common.h | 95 |
3 files changed, 94 insertions, 10 deletions
diff --git a/ext/sockets/php_sockets.h b/ext/sockets/php_sockets.h index bad83b34cc..dd2b9933f6 100644 --- a/ext/sockets/php_sockets.h +++ b/ext/sockets/php_sockets.h @@ -27,6 +27,9 @@ #if HAVE_SOCKETS #include <php.h> +#ifdef PHP_WIN32 +# include "windows_common.h" +#endif extern zend_module_entry sockets_module_entry; #define phpext_sockets_ptr &sockets_module_entry diff --git a/ext/sockets/sendrecvmsg.c b/ext/sockets/sendrecvmsg.c index f75fdcdede..50b43ec38a 100644 --- a/ext/sockets/sendrecvmsg.c +++ b/ext/sockets/sendrecvmsg.c @@ -115,8 +115,10 @@ static void init_ancillary_registry(void) to_zval_read_int, IPPROTO_IPV6, IPV6_HOPLIMIT); #endif +#ifdef IPV6_TCLASS PUT_ENTRY(sizeof(int), 0, 0, from_zval_write_int, to_zval_read_int, IPPROTO_IPV6, IPV6_TCLASS); +#endif #ifdef SO_PASSCRED PUT_ENTRY(sizeof(struct ucred), 0, 0, from_zval_write_ucred, @@ -416,14 +418,16 @@ void php_socket_sendrecvmsg_init(INIT_FUNC_ARGS) REGISTER_LONG_CONSTANT("IPV6_RECVHOPOPTS", IPV6_RECVHOPOPTS, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("IPV6_RECVDSTOPTS", IPV6_RECVDSTOPTS, CONST_CS | CONST_PERSISTENT); */ +#ifdef IPV6_RECVTCLASS REGISTER_LONG_CONSTANT("IPV6_RECVTCLASS", IPV6_RECVTCLASS, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IPV6_TCLASS", IPV6_TCLASS, CONST_CS | CONST_PERSISTENT); +#endif /* REGISTER_LONG_CONSTANT("IPV6_RTHDR", IPV6_RTHDR, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("IPV6_HOPOPTS", IPV6_HOPOPTS, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("IPV6_DSTOPTS", IPV6_DSTOPTS, CONST_CS | CONST_PERSISTENT); */ - REGISTER_LONG_CONSTANT("IPV6_TCLASS", IPV6_TCLASS, CONST_CS | CONST_PERSISTENT); #ifdef SCM_RIGHTS REGISTER_LONG_CONSTANT("SCM_RIGHTS", SCM_RIGHTS, CONST_CS | CONST_PERSISTENT); diff --git a/ext/sockets/windows_common.h b/ext/sockets/windows_common.h index c72c6987e6..3a9cb59129 100644 --- a/ext/sockets/windows_common.h +++ b/ext/sockets/windows_common.h @@ -24,14 +24,7 @@ #define HAVE_IF_NAMETOINDEX 1 #define IS_INVALID_SOCKET(a) (a->bsd_socket == INVALID_SOCKET) -#ifdef EPROTONOSUPPORT -# undef EPROTONOSUPPORT -#endif -#ifdef ECONNRESET -# undef ECONNRESET -#endif -#define EPROTONOSUPPORT WSAEPROTONOSUPPORT -#define ECONNRESET WSAECONNRESET + #ifdef errno # undef errno #endif @@ -40,4 +33,88 @@ #define set_errno(a) WSASetLastError(a) #define close(a) closesocket(a) -#endif
\ No newline at end of file +#ifdef ENETUNREACH /* errno.h probably included */ +# undef EWOULDBLOCK +# undef EINPROGRESS +# undef EALREADY +# undef ENOTSOCK +# undef EDESTADDRREQ +# undef EMSGSIZE +# undef EPROTOTYPE +# undef ENOPROTOOPT +# undef EPROTONOSUPPORT +# undef ESOCKTNOSUPPORT +# undef EOPNOTSUPP +# undef EPFNOSUPPORT +# undef EAFNOSUPPORT +# undef EADDRINUSE +# undef EADDRNOTAVAIL +# undef ENETDOWN +# undef ENETUNREACH +# undef ENETRESET +# undef ECONNABORTED +# undef ECONNRESET +# undef ENOBUFS +# undef EISCONN +# undef ENOTCONN +# undef ESHUTDOWN +# undef ETOOMANYREFS +# undef ETIMEDOUT +# undef ECONNREFUSED +# undef ELOOP +# undef ENAMETOOLONG +# undef EHOSTDOWN +# undef EHOSTUNREACH +# undef ENOTEMPTY +# undef EPROCLIM +# undef EUSERS +# undef EDQUOT +# undef ESTALE +# undef EREMOTE + +# undef EAGAIN +#endif + +/* section disabled in WinSock2.h */ +#define EWOULDBLOCK WSAEWOULDBLOCK +#define EINPROGRESS WSAEINPROGRESS +#define EALREADY WSAEALREADY +#define ENOTSOCK WSAENOTSOCK +#define EDESTADDRREQ WSAEDESTADDRREQ +#define EMSGSIZE WSAEMSGSIZE +#define EPROTOTYPE WSAEPROTOTYPE +#define ENOPROTOOPT WSAENOPROTOOPT +#define EPROTONOSUPPORT WSAEPROTONOSUPPORT +#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT +#define EOPNOTSUPP WSAEOPNOTSUPP +#define EPFNOSUPPORT WSAEPFNOSUPPORT +#define EAFNOSUPPORT WSAEAFNOSUPPORT +#define EADDRINUSE WSAEADDRINUSE +#define EADDRNOTAVAIL WSAEADDRNOTAVAIL +#define ENETDOWN WSAENETDOWN +#define ENETUNREACH WSAENETUNREACH +#define ENETRESET WSAENETRESET +#define ECONNABORTED WSAECONNABORTED +#define ECONNRESET WSAECONNRESET +#define ENOBUFS WSAENOBUFS +#define EISCONN WSAEISCONN +#define ENOTCONN WSAENOTCONN +#define ESHUTDOWN WSAESHUTDOWN +#define ETOOMANYREFS WSAETOOMANYREFS +#define ETIMEDOUT WSAETIMEDOUT +#define ECONNREFUSED WSAECONNREFUSED +#define ELOOP WSAELOOP +#define ENAMETOOLONG WSAENAMETOOLONG +#define EHOSTDOWN WSAEHOSTDOWN +#define EHOSTUNREACH WSAEHOSTUNREACH +#define ENOTEMPTY WSAENOTEMPTY +#define EPROCLIM WSAEPROCLIM +#define EUSERS WSAEUSERS +#define EDQUOT WSAEDQUOT +#define ESTALE WSAESTALE +#define EREMOTE WSAEREMOTE + +/* and an extra one */ +#define EAGAIN WSAEWOULDBLOCK + +#endif |
