+dnl ------ socklen_t
+dnl AC_CHECK_TYPES(socklen_t)
+AC_MSG_CHECKING(for socklen_t)
+AC_CACHE_VAL(ac_cv_check_socklen_t,
+[ac_cv_check_socklen_t=''
+AC_TRY_COMPILE([
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/socket.h>
+],
+ [socklen_t len;],
+ ac_cv_check_socklen_t=yes,
+ ac_cv_check_socklen_t=no)])
+AC_MSG_RESULT($ac_cv_check_socklen_t)
+if test "$ac_cv_check_socklen_t" = "yes"; then
+ AC_DEFINE(HAVE_SOCKLEN_T)
+else
+ AC_MSG_CHECKING(whether net size is of type size_t)
+ AC_CACHE_VAL(ac_cv_check_getpeername_accepts_size_t,
+ [ac_cv_check_getpeername_accepts_size_t=''
+ AC_TRY_COMPILE([
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/socket.h>
+],
+ [size_t mylen; getpeername(0, (struct sockaddr *)NULL, &mylen);],
+ ac_cv_check_getpeername_accepts_size_t=yes,
+ ac_cv_check_getpeername_accepts_size_t=no)])
+ AC_MSG_RESULT($ac_cv_check_getpeername_accepts_size_t)
+ if test "$ac_cv_check_getpeername_accepts_size_t" = yes; then
+ AC_DEFINE(GETPEERNAME_ACCEPTS_SIZE_T_FOR_THIRD_ARGUMENT)
+ fi
+fi