diff options
author | foobar <sniper@php.net> | 2005-07-14 00:12:26 +0000 |
---|---|---|
committer | foobar <sniper@php.net> | 2005-07-14 00:12:26 +0000 |
commit | ec940d4d5a9302acd80613cfd8bc86c790c76f71 (patch) | |
tree | cd1bbc1c1fb581519cb6676a585ad05aad28d919 /acinclude.m4 | |
parent | 29894e44460620f29db7185516ef47a801de3590 (diff) | |
download | php-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.m4 | 24 |
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 |