]> sjero.net Git - wget/blobdiff - aclocal.m4
[svn] Look for and use socklen_t.
[wget] / aclocal.m4
index 753ad2ab76554e2514d38ecfaedf563162f28046..3e3da839108ab01a6531083a7873bb0c471d2ca9 100644 (file)
@@ -74,7 +74,7 @@ case "x$am_cv_prog_cc_stdc" in
 esac
 ])
 
-AC_DEFUN(WGET_STRUCT_UTIMBUF,
+AC_DEFUN([WGET_STRUCT_UTIMBUF],
 [AC_MSG_CHECKING([for struct utimbuf])
 if test x"$ac_cv_header_utime_h" = xyes; then
   AC_EGREP_CPP([struct[        ]+utimbuf],
@@ -87,6 +87,37 @@ else
 fi])
 
 
+dnl Check for socklen_t.  The third argument of accept, getsockname,
+dnl etc. is int * on some systems, but size_t * on others.  POSIX
+dnl finally standardized on socklen_t, but older systems don't have
+dnl it.  If socklen_t exists, we use it, else if accept() accepts
+dnl size_t *, we use that, else we use int.
+
+AC_DEFUN([WGET_SOCKLEN_T], [
+  AC_MSG_CHECKING(for socklen_t)
+  AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <sys/socket.h>
+socklen_t x;
+],
+    [], [AC_MSG_RESULT(yes)], [
+      AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <sys/socket.h>
+int accept (int, struct sockaddr *, size_t *);
+],
+      [], [
+      AC_MSG_RESULT(size_t)
+      AC_DEFINE(socklen_t, size_t)
+    ], [
+      AC_MSG_RESULT(int)
+      AC_DEFINE(socklen_t, int)
+    ])
+  ])
+])
+
+
+
 dnl ************************************************************
 dnl START OF IPv6 AUTOCONFIGURATION SUPPORT MACROS
 dnl ************************************************************