summaryrefslogtreecommitdiff
path: root/acinclude.m4
diff options
context:
space:
mode:
authorfoobar <sniper@php.net>2005-07-14 00:12:26 +0000
committerfoobar <sniper@php.net>2005-07-14 00:12:26 +0000
commitec940d4d5a9302acd80613cfd8bc86c790c76f71 (patch)
treecd1bbc1c1fb581519cb6676a585ad05aad28d919 /acinclude.m4
parent29894e44460620f29db7185516ef47a801de3590 (diff)
downloadphp-git-ec940d4d5a9302acd80613cfd8bc86c790c76f71.tar.gz
- Fixed cacheing bug in PHP_SOCKADDR_SA_LEN macro
- Removed duplicate sa_len check from configure.in - Unified the sockaddr tests into PHP_SOCKADDR_CHECKS macro
Diffstat (limited to 'acinclude.m4')
-rw-r--r--acinclude.m424
1 files changed, 18 insertions, 6 deletions
diff --git a/acinclude.m4 b/acinclude.m4
index 7d045e88fb..ee046bab7f 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -1482,17 +1482,29 @@ AC_DEFUN([PHP_SYS_LFS],
])
dnl
-dnl PHP_SOCKADDR_SA_LEN
+dnl PHP_SOCKADDR_CHECKS
dnl
-AC_DEFUN([PHP_SOCKADDR_SA_LEN],[
+AC_DEFUN([PHP_SOCKADDR_CHECKS], [
+ dnl Check for struct sockaddr_storage exists
+ 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 if field sa_len exists in struct sockaddr
AC_CACHE_CHECK([for field sa_len in struct sockaddr],ac_cv_sockaddr_sa_len,[
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/socket.h>],
- [struct sockaddr s; s.sa_len;],
- [ac_cv_sockaddr_sa_len=yes
- AC_DEFINE(HAVE_SOCKADDR_SA_LEN,1,[ ])],
- [ac_cv_sockaddr_sa_len=no])
+ [static struct sockaddr sa; int n = (int) sa.sa_len; return n;],
+ [ac_cv_sockaddr_sa_len=yes], [ac_cv_sockaddr_sa_len=no])
])
+ if test "$ac_cv_sockaddr_sa_len" = "yes"; then
+ AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Whether struct sockaddr has field sa_len])
+ fi
])
dnl