AC_TYPE_SIZE_T
AC_TYPE_UID_T
+dnl Check for struct sockaddr_storage
+AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_sockaddr_storage,
+[AC_TRY_COMPILE([ #include <sys/types.h>
+#include <sys/socket.h>], [struct sockaddr_storage s; s],
+ ac_cv_sockaddr_storage=yes, ac_cv_sockaddr_storage=no)])
+if test "$ac_cv_sockaddr_storage" = yes; then
+ AC_DEFINE(HAVE_SOCKADDR_STORAGE,1,[Whether you have struct sockaddr_storage])
+fi
+
dnl Check for IPv6 support
AC_CACHE_CHECK([for IPv6 support], ac_cv_ipv6_support,
[AC_TRY_COMPILE([ #include <sys/types.h>
SOCKET max_fd;
} php_fd_set;
-typedef struct {
- long family;
- char info[256];
-} php_sockaddr_storage;
-
typedef struct {
zend_bool use_system_read;
} php_sockets_globals;
#endif
#include "php.h"
+#include "php_network.h"
#if HAVE_SOCKETS
/* {{{ php_connect_nonb */
PHPAPI int php_connect_nonb(int sockfd,
- struct sockaddr *addr,
+ const struct sockaddr *addr,
socklen_t addrlen,
struct timeval *timeout)
{
* port, returns the created socket on success, else returns -1.
* timeout gives timeout in seconds, 0 means blocking mode.
*/
-int php_hostconnect(char *host, unsigned short port, int socktype, int timeout)
+int php_hostconnect(const char *host, unsigned short port, int socktype, int timeout)
{
int s;
struct sockaddr **sal, **psal;
#include <sys/time.h>
#endif
+#ifdef HAVE_SOCKADDR_STORAGE
+typedef struct sockaddr_storage php_sockaddr_storage;
+#else
+typedef struct {
+ unsigned short ss_family;
+ char info[256];
+} php_sockaddr_storage;
+#endif
-int php_hostconnect(char *host, unsigned short port, int socktype, int timeout);
-PHPAPI int php_connect_nonb(int sockfd, struct sockaddr *addr, socklen_t addrlen, struct timeval *timeout);
+int php_hostconnect(const char *host, unsigned short port, int socktype, int timeout);
+PHPAPI int php_connect_nonb(int sockfd, const struct sockaddr *addr, socklen_t addrlen, struct timeval *timeout);
#endif /* _PHP_NETWORK_H */