mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-10-22 22:04:15 -04:00
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.
This commit is contained in:
1 parent
376acbfad5
commit
fab9a9c547
2 files changed
+13
-8
No files matched your search
Vendored
+11
-7
@@ -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 <sys/socket.h>
|
||||
],
|
||||
[
|
||||
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 <sys/socket.h>
|
||||
],
|
||||
[
|
||||
$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)
|
||||
|
||||
+2
-1
@@ -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 <errno.h>],[int i = errno],
|
||||
|
||||
Reference in new issue
Block a user