From: Kurt Zeilenga Date: Wed, 16 Sep 1998 05:10:53 +0000 (+0000) Subject: merge in allow null search base code (behind ifdef) from -devel X-Git-Tag: OPENLDAP_REL_ENG_1_0_2~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=037efda3f369aae0532a830df25ebaa74492d0af;p=thirdparty%2Fopenldap.git merge in allow null search base code (behind ifdef) from -devel --- diff --git a/servers/slapd/backend.c b/servers/slapd/backend.c index 998bfa8c6a..67dafc69ec 100644 --- a/servers/slapd/backend.c +++ b/servers/slapd/backend.c @@ -21,6 +21,7 @@ extern int ldbm_back_abandon(); extern int ldbm_back_config(); extern int ldbm_back_init(); extern int ldbm_back_close(); +extern int ldbm_back_group(); #endif #ifdef LDAP_PASSWD @@ -86,6 +87,9 @@ new_backend( be->be_config = ldbm_back_config; be->be_init = ldbm_back_init; be->be_close = ldbm_back_close; +#ifdef ACLGROUP + be->be_group = ldbm_back_group; +#endif be->be_type = "ldbm"; foundit = 1; } @@ -105,6 +109,9 @@ new_backend( be->be_config = passwd_back_config; be->be_init = NULL; be->be_close = NULL; +#ifdef ACLGROUP + be->be_group = NULL; +#endif be->be_type = "passwd"; foundit = 1; } @@ -124,6 +131,9 @@ new_backend( be->be_config = shell_back_config; be->be_init = shell_back_init; be->be_close = NULL; +#ifdef ACLGROUP + be->be_group = NULL; +#endif be->be_type = "shell"; foundit = 1; } @@ -149,7 +159,20 @@ select_backend( char * dn ) dnlen = strlen( dn ); for ( i = 0; i < nbackends; i++ ) { for ( j = 0; backends[i].be_suffix != NULL && - backends[i].be_suffix[j] != NULL; j++ ) { + backends[i].be_suffix[j] != NULL; j++ ) + { +#ifdef LDAP_ALLOW_NULL_SEARCH_BASE + /* Add greg@greg.rim.or.jp + * It's quick hack for cheap client + * Some browser offer a NULL base at ldap_search + */ + if(dnlen == 0) { + Debug( LDAP_DEBUG_TRACE, + "select_backend: use default backend\n", 0, 0, 0 ); + return (&backends[i]); + } +#endif /* LDAP_ALLOW_NULL_SEARCH_BASE */ + len = strlen( backends[i].be_suffix[j] ); if ( len > dnlen ) { @@ -231,3 +254,14 @@ be_unbind( } } } + +#ifdef ACLGROUP +int +be_group(Backend *be, char *bdn, char *edn) +{ + if (be->be_group) + return(be->be_group(be, bdn, edn)); + else + return(1); +} +#endif