Blame aclocal.m4

Packit 4511e4
dnl Check for socklen_t: historically on BSD it is an int, and in
Packit 4511e4
dnl POSIX 1g it is a type of its own, but some platforms use different
Packit 4511e4
dnl types for the argument to getsockopt, getpeername, etc.  So we
Packit 4511e4
dnl have to test to find something that will work.
Packit 4511e4
AC_DEFUN([TYPE_SOCKLEN_T],
Packit 4511e4
[
Packit 4511e4
   AC_CHECK_TYPE([socklen_t], ,[
Packit 4511e4
      AC_MSG_CHECKING([for socklen_t equivalent])
Packit 4511e4
      AC_CACHE_VAL([git_cv_socklen_t_equiv],
Packit 4511e4
      [
Packit 4511e4
         # Systems have either "struct sockaddr *" or
Packit 4511e4
         # "void *" as the second argument to getpeername
Packit 4511e4
         git_cv_socklen_t_equiv=
Packit 4511e4
         for arg2 in "struct sockaddr" void; do
Packit 4511e4
            for t in int size_t unsigned long "unsigned long"; do
Packit 4511e4
               AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
Packit 4511e4
                  #include <sys/types.h>
Packit 4511e4
                  #include <sys/socket.h>
Packit 4511e4
Packit 4511e4
                  int getpeername (int, $arg2 *, $t *);
Packit 4511e4
               ],[
Packit 4511e4
                  $t len;
Packit 4511e4
                  getpeername(0,0,&len;;
Packit 4511e4
               ])],[
Packit 4511e4
                  git_cv_socklen_t_equiv="$t"
Packit 4511e4
                  break 2
Packit 4511e4
               ])
Packit 4511e4
            done
Packit 4511e4
         done
Packit 4511e4
Packit 4511e4
         if test "x$git_cv_socklen_t_equiv" = x; then
Packit 4511e4
            AC_MSG_ERROR([Cannot find a type to use in place of socklen_t])
Packit 4511e4
         fi
Packit 4511e4
      ])
Packit 4511e4
      AC_MSG_RESULT($git_cv_socklen_t_equiv)
Packit 4511e4
      AC_DEFINE_UNQUOTED(socklen_t, $git_cv_socklen_t_equiv,
Packit 4511e4
			[type to use in place of socklen_t if not defined])],
Packit 4511e4
      [#include <sys/types.h>
Packit 4511e4
#include <sys/socket.h>])
Packit 4511e4
])