From 803bce24e3c902efcfba82dad08f25edf1dd3d6f Mon Sep 17 00:00:00 2001 From: nekral-guest Date: Sat, 30 Aug 2008 18:30:36 +0000 Subject: [PATCH] * configure.in, lib/nscd.h, lib/nscd.c: Added --with-nscd flag to support systems without nscd. git-svn-id: svn://svn.debian.org/pkg-shadow/upstream/trunk@2296 5a98b0ae-9ef6-0310-add3-de5d479b70d7 --- configure.in | 13 +++++++++++-- lib/nscd.c | 4 ++++ lib/nscd.h | 4 ++++ 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/configure.in b/configure.in index 044617c..8384a15 100644 --- a/configure.in +++ b/configure.in @@ -38,9 +38,9 @@ AC_CHECK_HEADERS(errno.h fcntl.h limits.h unistd.h sys/time.h utmp.h \ dnl shadow now uses the libc's shadow implementation AC_CHECK_HEADER([shadow.h],,[AC_MSG_ERROR([You need a libc with shadow.h])]) -AC_CHECK_FUNCS(l64a fchmod fchown fsync getgroups gethostname getspnam \ +AC_CHECK_FUNCS(l64a fchmod fchown fsync futimes getgroups gethostname getspnam \ gettimeofday getusershell getutent initgroups lchown lckpwdf lstat \ - memcpy memset setgroups sigaction strchr updwtmp updwtmpx innetgr \ + lutimes memcpy memset setgroups sigaction strchr updwtmp updwtmpx innetgr \ getpwnam_r getpwuid_r getgrnam_r getgrgid_r getspnam_r) AC_SYS_LARGEFILE @@ -235,12 +235,20 @@ AC_ARG_WITH(libcrack, AC_ARG_WITH(sha-crypt, [AC_HELP_STRING([--with-sha-crypt], [allow the SHA256 and SHA512 password encryption algorithms @<:@default=yes@:>@])], [with_sha_crypt=$withval], [with_sha_crypt=yes]) +AC_ARG_WITH(nscd, + [AC_HELP_STRING([--with-nscd], [enable support for nscd @<:@default=yes@:>@])], + [with_nscd=$withval], [with_nscd=yes]) AM_CONDITIONAL(USE_SHA_CRYPT, test "x$with_sha_crypt" = "xyes") if test "$with_sha_crypt" = "yes"; then AC_DEFINE(USE_SHA_CRYPT, 1, [Define to allow the SHA256 and SHA512 password encryption algorithms]) fi +AM_CONDITIONAL(USE_NSCD, test "x$with_nscd" = "xyes") +if test "$with_nscd" = "yes"; then + AC_DEFINE(USE_NSCD, 1, [Define to support flushing of nscd caches]) +fi + dnl Check for some functions in libc first, only if not found check for dnl other libraries. This should prevent linking libnsl if not really dnl needed (Linux glibc, Irix), but still link it if needed (Solaris). @@ -457,4 +465,5 @@ echo " SELinux support: $with_selinux" echo " shadow group support: $enable_shadowgrp" echo " S/Key support: $with_skey" echo " SHA passwords encryption: $with_sha_crypt" +echo " nscd support: $with_nscd" echo diff --git a/lib/nscd.c b/lib/nscd.c index 59b7172..5f54b72 100644 --- a/lib/nscd.c +++ b/lib/nscd.c @@ -1,5 +1,8 @@ /* Author: Peter Vrabec */ +#include +#ifdef USE_NSCD + /* because of TEMP_FAILURE_RETRY */ #define _GNU_SOURCE @@ -54,4 +57,5 @@ int nscd_flush_cache (const char *service) return 0; } +#endif diff --git a/lib/nscd.h b/lib/nscd.h index 8bb10a8..a430b00 100644 --- a/lib/nscd.h +++ b/lib/nscd.h @@ -4,6 +4,10 @@ /* * nscd_flush_cache - flush specified service buffer in nscd cache */ +#ifdef USE_NSCD extern int nscd_flush_cache (const char *service); +#else +#define nscd_flush_cache(service) (0) +#endif #endif -- 1.6.2