mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-26 17:49:59 -05:00
Changed be_nsuffix from char ** to struct berval ** to eliminate strlen's
This commit is contained in:
parent
9a970e7a23
commit
55a217d9ae
6 changed files with 15 additions and 12 deletions
|
|
@ -579,9 +579,8 @@ int bdb_build_tree(
|
|||
* multiple suffixes for a single backend won't work!
|
||||
*/
|
||||
bdb->bi_sufflen = strlen(be->be_suffix[0]);
|
||||
bdb->bi_nsufflen = strlen(be->be_nsuffix[0]);
|
||||
|
||||
rdns = ldap_explode_dn(be->be_nsuffix[0], 0);
|
||||
rdns = ldap_explode_dn(be->be_nsuffix[0]->bv_val, 0);
|
||||
for (i=0; rdns[i]; i++);
|
||||
bdb->bi_nrdns = i;
|
||||
charray_free(rdns);
|
||||
|
|
@ -621,7 +620,7 @@ int bdb_fix_dn(
|
|||
ldap_pvt_thread_rdwr_rlock(&bdb->bi_tree_rdwr);
|
||||
o = bdb_find_id_node(id, bdb->bi_tree);
|
||||
rlen = bdb->bi_sufflen + 1;
|
||||
nrlen = bdb->bi_nsufflen + 1;
|
||||
nrlen = be->be_nsuffix[0]->bv_len + 1;
|
||||
for (n = o; n; n=n->i_parent) {
|
||||
rlen += n->i_rdn->rdn.bv_len + 1;
|
||||
nrlen += n->i_rdn->nrdn.bv_len + 1;
|
||||
|
|
@ -641,7 +640,7 @@ int bdb_fix_dn(
|
|||
ptr--;
|
||||
nptr--;
|
||||
strcpy(ptr, be->be_suffix[0]);
|
||||
strcpy(nptr, be->be_nsuffix[0]);
|
||||
strcpy(nptr, be->be_nsuffix[0]->bv_val);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -206,7 +206,7 @@ monitor_back_db_init(
|
|||
monitor_defined++;
|
||||
|
||||
charray_add( &be->be_suffix, SLAPD_MONITOR_DN );
|
||||
charray_add( &be->be_nsuffix, SLAPD_MONITOR_NDN );
|
||||
ber_bvecadd( &be->be_nsuffix, ber_bvstr( SLAPD_MONITOR_NDN ));
|
||||
|
||||
mi = ( struct monitorinfo * )ch_calloc( sizeof( struct monitorinfo ), 1 );
|
||||
ldap_pvt_thread_mutex_init( &mi->mi_cache_mutex );
|
||||
|
|
|
|||
|
|
@ -190,7 +190,7 @@ passwd_back_search(
|
|||
if( !be_issuffix( be, parent ) ) {
|
||||
int i;
|
||||
for( i=0; be->be_nsuffix[i] != NULL; i++ ) {
|
||||
if( dn_issuffix( nbase, be->be_nsuffix[i] ) ) {
|
||||
if( dn_issuffix( nbase, be->be_nsuffix[i]->bv_val ) ) {
|
||||
matched = ch_strdup( be->be_suffix[i] );
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -525,7 +525,7 @@ select_backend(
|
|||
for ( j = 0; backends[i].be_nsuffix != NULL &&
|
||||
backends[i].be_nsuffix[j] != NULL; j++ )
|
||||
{
|
||||
len = strlen( backends[i].be_nsuffix[j] );
|
||||
len = backends[i].be_nsuffix[j]->bv_len;
|
||||
|
||||
if ( len > dnlen ) {
|
||||
/* suffix is longer than DN */
|
||||
|
|
@ -539,7 +539,7 @@ select_backend(
|
|||
}
|
||||
|
||||
|
||||
if ( strcmp( backends[i].be_nsuffix[j], &dn[dnlen-len] ) == 0 ) {
|
||||
if ( strcmp( backends[i].be_nsuffix[j]->bv_val, &dn[dnlen-len] ) == 0 ) {
|
||||
if( be == NULL ) {
|
||||
be = &backends[i];
|
||||
|
||||
|
|
@ -564,9 +564,13 @@ be_issuffix(
|
|||
)
|
||||
{
|
||||
int i;
|
||||
int len = strlen(suffix);
|
||||
|
||||
for ( i = 0; be->be_nsuffix != NULL && be->be_nsuffix[i] != NULL; i++ ) {
|
||||
if ( strcmp( be->be_nsuffix[i], suffix ) == 0 ) {
|
||||
if ( len != be->be_nsuffix[i]->bv_len ) {
|
||||
continue;
|
||||
}
|
||||
if ( strcmp( be->be_nsuffix[i]->bv_val, suffix ) == 0 ) {
|
||||
return( 1 );
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -899,6 +899,7 @@ read_config( const char *fname )
|
|||
|
||||
} else {
|
||||
char *dn = ch_strdup( cargv[1] );
|
||||
|
||||
if ( load_ucdata( NULL ) < 0 ) {
|
||||
return( 1 );
|
||||
}
|
||||
|
|
@ -947,8 +948,7 @@ read_config( const char *fname )
|
|||
return 1;
|
||||
}
|
||||
#endif /* USE_LDAP_DN_PARSING */
|
||||
charray_add( &be->be_nsuffix, dn );
|
||||
free( dn );
|
||||
ber_bvecadd( &be->be_nsuffix, ber_bvstr( dn ));
|
||||
}
|
||||
|
||||
/* set database suffixAlias */
|
||||
|
|
|
|||
|
|
@ -979,7 +979,7 @@ struct slap_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 */
|
||||
struct berval **be_nsuffix; /* the normalized DN suffixes in this backend */
|
||||
char **be_suffixAlias; /* pairs of DN suffix aliases and deref values */
|
||||
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