Add Linux/BSD switch for Unix auth.
[doldaconnect.git] / configure.in
index 6d8ed05..691b9e2 100644 (file)
@@ -216,6 +216,21 @@ AH_TEMPLATE(HAVE_KEYUTILS, [define if your system supports the Linux keyring fun
 AC_CHECK_LIB(keyutils, keyctl_search, [ AC_DEFINE(HAVE_KEYUTILS)
                                        LDFLAGS="$LDFLAGS -lkeyutils" ])
 
+# Unix credentials selector
+AH_TEMPLATE(UNIX_AUTH_STYLE, [undefine for no Unix auth, 1 for Linux style, 2 for BSD style])
+AC_CHECK_MEMBER(struct ucred.pid, [ linuxcreds=y ], [ linuxcreds=n ], [#include <sys/socket.h>])
+AC_CHECK_FUNC(getpeereid, [ bsdcreds=y ], [ bsdcreds=n ])
+AC_MSG_CHECKING([for Unix auth style])
+if test $linuxcreds = y; then
+       AC_DEFINE(UNIX_AUTH_STYLE, 1)
+       AC_MSG_RESULT(linux)
+elif test $bsdcreds = y; then
+       AC_DEFINE(UNIX_AUTH_STYLE, 2)
+       AC_MSG_RESULT(bsd)
+else
+       AC_MSG_RESULT(none)
+fi
+
 AC_HEADER_STDC
 AC_HEADER_DIRENT
 AC_HEADER_SYS_WAIT