mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-26 01:29:59 -05:00
For ITS#158: keep mixed-case backend suffix in addition to upcased suffix.
This commit is contained in:
parent
0881444263
commit
31a0c4a917
3 changed files with 10 additions and 7 deletions
|
|
@ -366,16 +366,16 @@ 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++ )
|
||||
for ( j = 0; backends[i].be_nsuffix != NULL &&
|
||||
backends[i].be_nsuffix[j] != NULL; j++ )
|
||||
{
|
||||
len = strlen( backends[i].be_suffix[j] );
|
||||
len = strlen( backends[i].be_nsuffix[j] );
|
||||
|
||||
if ( len > dnlen ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( strcmp( backends[i].be_suffix[j],
|
||||
if ( strcmp( backends[i].be_nsuffix[j],
|
||||
dn + (dnlen - len) ) == 0 ) {
|
||||
return( &backends[i] );
|
||||
}
|
||||
|
|
@ -427,8 +427,8 @@ be_issuffix(
|
|||
{
|
||||
int i;
|
||||
|
||||
for ( i = 0; be->be_suffix != NULL && be->be_suffix[i] != NULL; i++ ) {
|
||||
if ( strcmp( be->be_suffix[i], suffix ) == 0 ) {
|
||||
for ( i = 0; be->be_nsuffix != NULL && be->be_nsuffix[i] != NULL; i++ ) {
|
||||
if ( strcmp( be->be_nsuffix[i], suffix ) == 0 ) {
|
||||
return( 1 );
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -179,8 +179,10 @@ read_config( char *fname )
|
|||
fname, lineno, 0 );
|
||||
} else {
|
||||
char *dn = ch_strdup( cargv[1] );
|
||||
(void) dn_normalize_case( dn );
|
||||
(void) dn_normalize( dn );
|
||||
charray_add( &be->be_suffix, dn );
|
||||
(void) dn_upcase( dn );
|
||||
charray_add( &be->be_nsuffix, dn );
|
||||
free( dn );
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -255,6 +255,7 @@ struct backend_db {
|
|||
|
||||
/* these should be renamed from be_ to bd_ */
|
||||
char **be_suffix; /* the DN suffixes of data in this backend */
|
||||
char **be_nsuffix; /* the normalized DN suffixes in this backend */
|
||||
char **be_suffixAlias; /* the DN suffix aliases of data in this backend */
|
||||
char *be_root_dn; /* the magic "root" dn for this db */
|
||||
char *be_root_ndn; /* the magic "root" normalized dn for this db */
|
||||
|
|
|
|||
Loading…
Reference in a new issue