From: Martin Pool Date: Wed, 8 Aug 2001 10:04:40 +0000 (+0000) Subject: Another try at socklen_t: just check for it, and otherwise use int. X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/fab9a9c54729984199d20b637ea8cc163c73d2e2 Another try at socklen_t: just check for it, and otherwise use int. The HP manual says this will work on old HP/UX versions; I'm not sure about other systems. Possibly it will break on old BSD-derived systems with 32-bit int, 64-bit size_t and no socklen_t, if there are any such. --- diff --git a/aclocal.m4 b/aclocal.m4 index e35b9a71..a1256ae8 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -102,8 +102,9 @@ dnl POSIX 1g it is a type of its own, but some platforms use different dnl types for the argument to getsockopt, getpeername, etc. So we dnl have to test to find something that will work. -dnl This test originally comes from lftp, by way of Albert Chin at The -dnl Written Word. Thanks! +dnl This is no good, because passing the wrong pointer on C compilers is +dnl likely to only generate a warning, not an error. We don't call this at +dnl the moment. AC_DEFUN([TYPE_SOCKLEN_T], [ @@ -116,8 +117,8 @@ AC_DEFUN([TYPE_SOCKLEN_T], #include ], [ - socklen_t len; - getpeername(0,0,&len); + socklen_t len; + getpeername(0,0,&len); ], [ lftp_cv_socklen_t=yes @@ -136,13 +137,16 @@ AC_DEFUN([TYPE_SOCKLEN_T], #include ], [ - $t len; - getpeername(0,0,&len); + $t len; + getpeername(0,0,&len); ], [ lftp_cv_socklen_t_equiv="$t" break - ]) + ], + [ + AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) + ]) done ]) AC_MSG_RESULT($lftp_cv_socklen_t_equiv) diff --git a/configure.in b/configure.in index d5c626d3..e08249da 100644 --- a/configure.in +++ b/configure.in @@ -77,7 +77,8 @@ AC_TYPE_PID_T AC_TYPE_GETGROUPS AC_STRUCT_ST_RDEV AC_CHECK_TYPE([ino_t], [unsigned]) -TYPE_SOCKLEN_T +dnl TYPE_SOCKLEN_T +AC_CHECK_TYPE([socklen_t], [size_t]) AC_CACHE_CHECK([for errno in errno.h],rsync_cv_errno, [ AC_TRY_COMPILE([#include ],[int i = errno],