]> andersk Git - openssh.git/blobdiff - aclocal.m4
- djm@cvs.openbsd.org 2010/01/30 02:54:53
[openssh.git] / aclocal.m4
index ba97b402682cff73d2b4545bdc6008ec47e99444..3ce1f97ceb3c7eeb06cb6a9f6ea9a4ee68ce6596 100644 (file)
@@ -22,11 +22,11 @@ AC_DEFUN(OSSH_CHECK_HEADER_FOR_FIELD, [
                        eval "$ossh_varname=no" dnl
                ]) dnl
        ])
-       ossh_result=`eval "echo "$"$ossh_varname"`
+       ossh_result=`eval 'echo $'"$ossh_varname"`
        if test -n "`echo $ossh_varname`"; then
                AC_MSG_RESULT($ossh_result)
                if test "x$ossh_result" = "xyes"; then
-                       AC_DEFINE($3)
+                       AC_DEFINE($3, 1, [Define if you have $1 in $2])
                fi
        else
                AC_MSG_RESULT(no)
@@ -43,3 +43,44 @@ AC_DEFUN(OSSH_PATH_ENTROPY_PROG, [
        AC_SUBST($1)
 ])
 
+dnl Check for socklen_t: historically on BSD it is an int, and in
+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.
+AC_DEFUN([TYPE_SOCKLEN_T],
+[
+   AC_CHECK_TYPE([socklen_t], ,[
+      AC_MSG_CHECKING([for socklen_t equivalent])
+      AC_CACHE_VAL([curl_cv_socklen_t_equiv],
+      [
+        # Systems have either "struct sockaddr *" or
+        # "void *" as the second argument to getpeername
+        curl_cv_socklen_t_equiv=
+        for arg2 in "struct sockaddr" void; do
+           for t in int size_t unsigned long "unsigned long"; do
+              AC_TRY_COMPILE([
+                 #include <sys/types.h>
+                 #include <sys/socket.h>
+
+                 int getpeername (int, $arg2 *, $t *);
+              ],[
+                 $t len;
+                 getpeername(0,0,&len);
+              ],[
+                 curl_cv_socklen_t_equiv="$t"
+                 break
+              ])
+           done
+        done
+
+        if test "x$curl_cv_socklen_t_equiv" = x; then
+           AC_MSG_ERROR([Cannot find a type to use in place of socklen_t])
+        fi
+      ])
+      AC_MSG_RESULT($curl_cv_socklen_t_equiv)
+      AC_DEFINE_UNQUOTED(socklen_t, $curl_cv_socklen_t_equiv,
+                       [type to use in place of socklen_t if not defined])],
+      [#include <sys/types.h>
+#include <sys/socket.h>])
+])
+
This page took 0.027187 seconds and 4 git commands to generate.