summaryrefslogtreecommitdiff
path: root/nslcd/nsswitch.c
diff options
context:
space:
mode:
Diffstat (limited to 'nslcd/nsswitch.c')
-rw-r--r--nslcd/nsswitch.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/nslcd/nsswitch.c b/nslcd/nsswitch.c
index 2a5f124..56cb21b 100644
--- a/nslcd/nsswitch.c
+++ b/nslcd/nsswitch.c
@@ -32,10 +32,11 @@
#include "common.h"
#include "log.h"
-/* the cached value of whether shadow lookups use LDAP in nsswitch.conf */
+/* the cached value of whether shadow lookups use our associated
+ module in nsswitch.conf */
#define NSSWITCH_FILE "/etc/nsswitch.conf"
#define CACHED_UNKNOWN 22
-static int cached_shadow_uses_nslcd = CACHED_UNKNOWN;
+static int cached_shadow_uses_module = CACHED_UNKNOWN;
static time_t cached_shadow_lastcheck = 0;
#define CACHED_SHADOW_TIMEOUT (60)
static time_t nsswitch_mtime = 0;
@@ -44,12 +45,12 @@ static time_t nsswitch_mtime = 0;
#define MAX_LINE_LENGTH 4096
/* check whether /etc/nsswitch.conf should be reloaded to update
- cached_shadow_uses_nslcd */
+ cached_shadow_uses_module */
void nsswitch_check_reload(void)
{
struct stat buf;
time_t t;
- if ((cached_shadow_uses_nslcd != CACHED_UNKNOWN) &&
+ if ((cached_shadow_uses_module != CACHED_UNKNOWN) &&
((t = time(NULL)) > (cached_shadow_lastcheck + CACHED_SHADOW_TIMEOUT)))
{
cached_shadow_lastcheck = t;
@@ -57,14 +58,14 @@ void nsswitch_check_reload(void)
{
log_log(LOG_ERR, "stat(%s) failed: %s", NSSWITCH_FILE, strerror(errno));
/* trigger a recheck anyway */
- cached_shadow_uses_nslcd = CACHED_UNKNOWN;
+ cached_shadow_uses_module = CACHED_UNKNOWN;
return;
}
/* trigger a recheck if file changed */
if (buf.st_mtime != nsswitch_mtime)
{
nsswitch_mtime = buf.st_mtime;
- cached_shadow_uses_nslcd = CACHED_UNKNOWN;
+ cached_shadow_uses_module = CACHED_UNKNOWN;
}
}
}
@@ -128,14 +129,14 @@ static int has_service(const char *services, const char *service,
return 0;
}
-static int shadow_uses_nslcd(void)
+static int shadow_uses_module(const char *module_name)
{
FILE *fp;
int lnr = 0;
char linebuf[MAX_LINE_LENGTH];
const char *services;
int shadow_found = 0;
- int passwd_has_nslcd = 0;
+ int passwd_has_module = 0;
/* open config file */
if ((fp = fopen(NSSWITCH_FILE, "r")) == NULL)
{
@@ -151,7 +152,7 @@ static int shadow_uses_nslcd(void)
if (services != NULL)
{
shadow_found = 1;
- if (has_service(services, "ldap", NSSWITCH_FILE, lnr))
+ if (has_service(services, NSS_MODULE_NAME, NSSWITCH_FILE, lnr))
{
fclose(fp);
return 1;
@@ -160,22 +161,22 @@ static int shadow_uses_nslcd(void)
/* see if we have a passwd line */
services = find_db(linebuf, "passwd");
if (services != NULL)
- passwd_has_nslcd = has_service(services, "ldap", NSSWITCH_FILE, lnr);
+ passwd_has_module = has_service(services, NSS_MODULE_NAME, NSSWITCH_FILE, lnr);
}
fclose(fp);
if (shadow_found)
return 0;
- return passwd_has_nslcd;
+ return passwd_has_module;
}
/* check whether shadow lookups are configured to use nslcd */
int nsswitch_shadow_uses_nslcd(void)
{
- if (cached_shadow_uses_nslcd == CACHED_UNKNOWN)
+ if (cached_shadow_uses_module == CACHED_UNKNOWN)
{
log_log(LOG_INFO, "(re)loading %s", NSSWITCH_FILE);
- cached_shadow_uses_nslcd = shadow_uses_nslcd();
+ cached_shadow_uses_module = shadow_uses_module(NSS_MODULE_NAME);
cached_shadow_lastcheck = time(NULL);
}
- return cached_shadow_uses_nslcd;
+ return cached_shadow_uses_module;
}