Converted suffixAlias to struct bervals.

This commit is contained in:
Howard Chu 2001-12-09 14:57:42 +00:00
parent 45aadbbbba
commit fd7e23c188
3 changed files with 9 additions and 10 deletions

View file

@ -1045,11 +1045,10 @@ read_config( const char *fname )
aliased_dn = ch_strdup( cargv[2] );
(void) dn_normalize( aliased_dn );
charray_add( &be->be_suffixAlias, alias );
charray_add( &be->be_suffixAlias, aliased_dn );
free(alias);
free(aliased_dn);
ber_bvecadd( &be->be_suffixAlias,
ber_bvstr( alias ) );
ber_bvecadd( &be->be_suffixAlias,
ber_bvstr( aliased_dn ) );
}
/* set max deref depth */

View file

@ -980,7 +980,7 @@ struct slap_backend_db {
/* these should be renamed from be_ to bd_ */
char **be_suffix; /* the DN suffixes of data 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 */
struct berval **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 */
struct berval be_root_pw; /* the magic "root" password for this db */

View file

@ -43,7 +43,7 @@ char *suffix_alias(
be->be_suffixAlias != NULL && be->be_suffixAlias[i] != NULL;
i += 2 )
{
int aliasLength = strlen (be->be_suffixAlias[i]);
int aliasLength = be->be_suffixAlias[i]->bv_len;
int diff = dnLength - aliasLength;
if ( diff < 0 ) {
@ -58,11 +58,11 @@ char *suffix_alias(
/* XXX or an escaped separator... oh well */
}
if (!strcmp(be->be_suffixAlias[i], &dn[diff])) {
if (!strcmp(be->be_suffixAlias[i]->bv_val, &dn[diff])) {
char *oldDN = dn;
dn = ch_malloc( diff + strlen(be->be_suffixAlias[i+1]) + 1 );
dn = ch_malloc( diff + be->be_suffixAlias[i+1]->bv_len + 1 );
strncpy( dn, oldDN, diff );
strcpy( &dn[diff], be->be_suffixAlias[i+1] );
strcpy( &dn[diff], be->be_suffixAlias[i+1]->bv_val );
#ifdef NEW_LOGGING
LDAP_LOG(( "operation", LDAP_LEVEL_INFO,
"suffix_alias: converted \"%s\" to \"%s\"\n",