AC_DEFINE(HAVE_SOCKADDR_STORAGE,1,[Whether you have struct sockaddr_storage])
fi
+dnl Check if sockaddr data structure includes an "sa_len" member
+AC_CHECK_MEMBER([struct sockaddr.sa_len],
+ [AC_DEFINE(HAVE_SOCKADDR_LEN,1,[Whether sockaddr struct has sa_len])],
+ [],
+[
+#include <sys/types.h>
+#include <sys/socket.h>
+])
+
dnl Check for IPv6 support
AC_CACHE_CHECK([for IPv6 support], ac_cv_ipv6_support,
[AC_TRY_LINK([ #include <sys/types.h>
struct sockaddr_in *sin = (struct sockaddr_in *) addr;
sin->sin_family = AF_INET;
sin->sin_port = htons(port);
- sin->sin_addr.s_addr = INADDR_ANY;
+ sin->sin_addr.s_addr = htonl(INADDR_ANY);
break;
}
}
typedef struct sockaddr_storage php_sockaddr_storage;
#else
typedef struct {
+#ifdef HAVE_SOCKADDR_LEN
+ unsigned char ss_len;
+ unsigned char ss_family;
+#else
unsigned short ss_family;
- char info[256];
+#endif
+ char info[126];
} php_sockaddr_storage;
#endif