From 56cdaa594cd9f3c683a02f3fa6952204c016e232 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Fri, 19 Mar 2004 06:16:45 +0000 Subject: [PATCH] ITS#3032: retry when GSSAPI creds are not available --- servers/slapd/syncrepl.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index cb0a461adc..616c22306f 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -256,7 +256,7 @@ do_syncrep1( lutil_sasl_freedefs( defaults ); - /* FIXME : different error behaviors according to + /* FIXME: different error behaviors according to * 1) return code * 2) on err policy : exit, retry, backoff ... */ @@ -270,6 +270,15 @@ do_syncrep1( "ldap_sasl_interactive_bind_s failed (%d)\n", rc, 0, 0 ); #endif + + /* FIXME (see above comment) */ + /* if Kerberos credentials cache is not active, retry */ + if ( strcmp( si->si_saslmech, "GSSAPI" ) == 0 && + rc == LDAP_LOCAL_ERROR ) + { + rc = LDAP_SERVER_DOWN; + } + goto done; } #else /* HAVE_CYRUS_SASL */ @@ -279,7 +288,8 @@ do_syncrep1( goto done; #endif } else { - rc = ldap_bind_s( si->si_ld, si->si_binddn, si->si_passwd, si->si_bindmethod ); + rc = ldap_bind_s( si->si_ld, + si->si_binddn, si->si_passwd, si->si_bindmethod ); if ( rc != LDAP_SUCCESS ) { #ifdef NEW_LOGGING LDAP_LOG ( OPERATION, ERR, "do_syncrep1: " -- 2.39.5