* configure.in: Move check for pwdauth() to MC_MCSERVER_CHECKS.

* acinclude.m4 (MC_MCSERVER_CHECKS): If using crypt(), check for
shadow password support.
This commit is contained in:
Pavel Roskin 2002-11-17 05:44:21 +00:00
parent 7ba4aacd85
commit 9e20efe375
3 changed files with 31 additions and 7 deletions

View File

@ -1,5 +1,9 @@
2002-11-16 Pavel Roskin <proski@gnu.org> 2002-11-16 Pavel Roskin <proski@gnu.org>
* configure.in: Move check for pwdauth() to MC_MCSERVER_CHECKS.
* acinclude.m4 (MC_MCSERVER_CHECKS): If using crypt(), check for
shadow password support.
* acinclude.m4 (MC_MCSERVER_CHECKS): Don't limit PAM check to * acinclude.m4 (MC_MCSERVER_CHECKS): Don't limit PAM check to
Linux. Use AC_SEARCH_LIBS to find crypt(). Consolidate mcserv Linux. Use AC_SEARCH_LIBS to find crypt(). Consolidate mcserv
libraries into MCSERVLIBS. libraries into MCSERVLIBS.

View File

@ -37,22 +37,27 @@ AC_DEFUN([MC_UNDELFS_CHECKS], [
dnl MC_MCSERVER_CHECKS dnl MC_MCSERVER_CHECKS
dnl Check how mcserver should check passwords. dnl Check how mcserver should check passwords.
dnl Possible methods are PAM and libcrypt. dnl Possible methods are PAM, pwdauth and crypt.
dnl The later works with both /etc/shadow and /etc/passwd.
dnl If PAM is found, other methods are not checked.
AC_DEFUN([MC_MCSERVER_CHECKS], [ AC_DEFUN([MC_MCSERVER_CHECKS], [
mcserv_auth=
dnl Check if PAM can be used for mcserv dnl Check if PAM can be used for mcserv
AC_CHECK_LIB(dl, dlopen, [LIB_DL="-ldl"]) AC_CHECK_LIB(dl, dlopen, [LIB_DL="-ldl"])
AC_CHECK_LIB(pam, pam_start, [ AC_CHECK_LIB(pam, pam_start, [
AC_DEFINE(HAVE_PAM, 1, AC_DEFINE(HAVE_PAM, 1,
[Define if PAM (Pluggable Authentication Modules) is available]) [Define if PAM (Pluggable Authentication Modules) is available])
MCSERVLIBS="-lpam $LIB_DL" MCSERVLIBS="-lpam $LIB_DL"
mcserv_auth=pam], [], [$LIB_DL]) mcserv_pam=yes], [], [$LIB_DL])
dnl Fallback to libcrypt (uses passwords from /etc/passwd) dnl Check for crypt() - needed for both /etc/shadow and /etc/passwd.
if test -z "$mcserv_auth"; then if test -z "$mcserv_pam"; then
dnl Check for pwdauth() - used on SunOS.
AC_CHECK_FUNCS([pwdauth])
dnl Check for crypt()
AC_CHECK_HEADERS([crypt.h], [crypt_header=yes]) AC_CHECK_HEADERS([crypt.h], [crypt_header=yes])
if test -n "$crypt_header"; then if test -n "$crypt_header"; then
save_LIBS="$LIBS" save_LIBS="$LIBS"
@ -63,6 +68,21 @@ AC_DEFUN([MC_MCSERVER_CHECKS], [
if test -n "$mcserv_auth"; then if test -n "$mcserv_auth"; then
AC_DEFINE(HAVE_CRYPT, 1, AC_DEFINE(HAVE_CRYPT, 1,
[Define to use crypt function in mcserv]) [Define to use crypt function in mcserv])
dnl Check for shadow passwords
AC_CHECK_HEADERS([shadow.h shadow/shadow.h],
[shadow_header=yes; break])
if test -n "$shadow_header"; then
save_LIBS="$LIBS"
LIBS="$MCSERVLIBS"
AC_SEARCH_LIBS(getspnam, [shadow], [mcserv_auth=shadow])
MCSERVLIBS="$LIBS"
LIBS="$save_LIBS"
if test -n "$mcserv_auth"; then
AC_DEFINE(HAVE_SHADOW, 1,
[Define to use shadow passwords for mcserv])
fi
fi
fi fi
fi fi
fi fi

View File

@ -132,7 +132,7 @@ dnl Check availability of some functions
dnl dnl
AC_CHECK_FUNCS([strerror statfs strftime \ AC_CHECK_FUNCS([strerror statfs strftime \
memmove pwdauth truncate initgroups putenv \ memmove truncate initgroups putenv \
memset memcpy tcsetattr tcgetattr cfgetospeed \ memset memcpy tcsetattr tcgetattr cfgetospeed \
sigaction sigemptyset sigprocmask sigaddset \ sigaction sigemptyset sigprocmask sigaddset \
sysconf setuid setreuid telldir seekdir]) sysconf setuid setreuid telldir seekdir])