Arthur de Jong

Open Source / Free Software developer

summaryrefslogtreecommitdiffstats
path: root/nslcd/cfg.c
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2008-04-25 18:40:46 +0200
committerArthur de Jong <arthur@arthurdejong.org>2008-04-25 18:40:46 +0200
commit2d0c55d83f57e79271e6c26aa8a93116bcb3a1ae (patch)
tree43b5140b42981ccc27e32e9216d0e173482cc176 /nslcd/cfg.c
parent40190fd0229ebc779fdb81f2dd83e781beec11ff (diff)
implement new timing mechanism for retries to quickly fail lookups to LDAP server that have been failing for some time, removing the reconnect_tries option and giving reconnect_sleeptime and reconnect_maxsleeptime options a new meaning
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-ldapd@701 ef36b2f9-881f-0410-afb5-c4e39611909c
Diffstat (limited to 'nslcd/cfg.c')
-rw-r--r--nslcd/cfg.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/nslcd/cfg.c b/nslcd/cfg.c
index 21b8d56..7f6dbad 100644
--- a/nslcd/cfg.c
+++ b/nslcd/cfg.c
@@ -63,7 +63,11 @@ static void cfg_defaults(struct ldap_config *cfg)
int i;
memset(cfg,0,sizeof(struct ldap_config));
for (i=0;i<(NSS_LDAP_CONFIG_URI_MAX+1);i++)
- cfg->ldc_uris[i]=NULL;
+ {
+ cfg->ldc_uris[i].uri=NULL;
+ cfg->ldc_uris[i].lastok=0;
+ cfg->ldc_uris[i].lastfail=0;
+ }
#ifdef LDAP_VERSION3
cfg->ldc_version=LDAP_VERSION3;
#else /* LDAP_VERSION3 */
@@ -81,7 +85,6 @@ static void cfg_defaults(struct ldap_config *cfg)
cfg->ldc_bind_timelimit=30;
cfg->ldc_timelimit=LDAP_NO_LIMIT;
cfg->ldc_idle_timelimit=0;
- cfg->ldc_reconnect_tries=4;
cfg->ldc_reconnect_sleeptime=1;
cfg->ldc_reconnect_maxsleeptime=30;
cfg->ldc_ssl_on=SSL_OFF;
@@ -123,7 +126,7 @@ static void add_uri(const char *filename,int lnr,
int i;
log_log(LOG_DEBUG,"add_uri(%s)",uri);
/* find the place where to insert the URI */
- for (i=0;cfg->ldc_uris[i]!=NULL;i++)
+ for (i=0;cfg->ldc_uris[i].uri!=NULL;i++)
;
/* check for room */
if (i>=NSS_LDAP_CONFIG_URI_MAX)
@@ -132,8 +135,7 @@ static void add_uri(const char *filename,int lnr,
exit(EXIT_FAILURE);
}
/* append URI to list */
- cfg->ldc_uris[i]=xstrdup(uri);
- cfg->ldc_uris[i+1]=NULL;
+ cfg->ldc_uris[i].uri=xstrdup(uri);
}
#ifndef HOST_NAME_MAX
@@ -698,10 +700,7 @@ static void cfg_read(const char *filename,struct ldap_config *cfg)
get_eol(filename,lnr,keyword,&line);
}
else if (strcasecmp(keyword,"reconnect_tries")==0)
- {
- get_int(filename,lnr,keyword,&line,&cfg->ldc_reconnect_tries);
- get_eol(filename,lnr,keyword,&line);
- }
+ log_log(LOG_WARNING,"%s:%d: option %s has been removed and will be ignored",filename,lnr,keyword);
else if (!strcasecmp(keyword,"reconnect_sleeptime"))
{
get_int(filename,lnr,keyword,&line,&cfg->ldc_reconnect_sleeptime);
@@ -820,7 +819,7 @@ void cfg_init(const char *fname)
/* read configfile */
cfg_read(fname,nslcd_cfg);
/* do some sanity checks */
- if (nslcd_cfg->ldc_uris[0]==NULL)
+ if (nslcd_cfg->ldc_uris[0].uri==NULL)
{
log_log(LOG_ERR,"no URIs defined in config");
exit(EXIT_FAILURE);