From 31a0c4a917152f63b4218175cca925e08e6d8830 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Tue, 25 May 1999 21:40:40 +0000 Subject: [PATCH] For ITS#158: keep mixed-case backend suffix in addition to upcased suffix. --- servers/slapd/backend.c | 12 ++++++------ servers/slapd/config.c | 4 +++- servers/slapd/slap.h | 1 + 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/servers/slapd/backend.c b/servers/slapd/backend.c index cac8270339..2707e2633d 100644 --- a/servers/slapd/backend.c +++ b/servers/slapd/backend.c @@ -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 ); } } diff --git a/servers/slapd/config.c b/servers/slapd/config.c index 100400e9f3..af5f0ee5a5 100644 --- a/servers/slapd/config.c +++ b/servers/slapd/config.c @@ -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 ); } diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h index 10cd62fabc..7ce8353259 100644 --- a/servers/slapd/slap.h +++ b/servers/slapd/slap.h @@ -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 */ -- 2.39.5