version 1.100, 2005/03/14 22:21:00
|
version 1.101, 2005/03/24 04:13:31
|
Line 1
|
Line 1
|
/* root_dse.c - Provides the Root DSA-Specific Entry */ |
/* root_dse.c - Provides the Root DSA-Specific Entry */ |
/* $OpenLDAP: pkg/ldap/servers/slapd/root_dse.c,v 1.99 2005/02/01 09:32:52 ando Exp $ */ |
/* $OpenLDAP: pkg/ldap/servers/slapd/root_dse.c,v 1.100 2005/03/14 22:21:00 hyc Exp $ */ |
/* This work is part of OpenLDAP Software <http://www.openldap.org/>. |
/* This work is part of OpenLDAP Software <http://www.openldap.org/>. |
* |
* |
* Copyright 1999-2005 The OpenLDAP Foundation. |
* Copyright 1999-2005 The OpenLDAP Foundation. |
Line 56 root_dse_info(
|
Line 56 root_dse_info(
|
struct berval nvals[2]; |
struct berval nvals[2]; |
int i, j; |
int i, j; |
char ** supportedSASLMechanisms; |
char ** supportedSASLMechanisms; |
|
BackendDB *be; |
|
|
AttributeDescription *ad_structuralObjectClass |
AttributeDescription *ad_structuralObjectClass |
= slap_schema.si_ad_structuralObjectClass; |
= slap_schema.si_ad_structuralObjectClass; |
Line 116 root_dse_info(
|
Line 117 root_dse_info(
|
return LDAP_OTHER; |
return LDAP_OTHER; |
} |
} |
|
|
for ( i = 0; i < nbackends; i++ ) { |
LDAP_STAILQ_FOREACH( be, &backendDB, be_next ) { |
if ( backends[i].be_suffix == NULL |
if ( be->be_suffix == NULL |
|| backends[i].be_nsuffix == NULL ) { |
|| be->be_nsuffix == NULL ) { |
/* no suffix! */ |
/* no suffix! */ |
continue; |
continue; |
} |
} |
if ( SLAP_MONITOR( &backends[i] )) { |
if ( SLAP_MONITOR( be )) { |
vals[0] = backends[i].be_suffix[0]; |
vals[0] = be->be_suffix[0]; |
nvals[0] = backends[i].be_nsuffix[0]; |
nvals[0] = be->be_nsuffix[0]; |
if( attr_merge( e, ad_monitorContext, vals, nvals ) ) { |
if( attr_merge( e, ad_monitorContext, vals, nvals ) ) { |
return LDAP_OTHER; |
return LDAP_OTHER; |
} |
} |
continue; |
continue; |
} |
} |
if ( SLAP_CONFIG( &backends[i] )) { |
if ( SLAP_CONFIG( be )) { |
vals[0] = backends[i].be_suffix[0]; |
vals[0] = be->be_suffix[0]; |
nvals[0] = backends[i].be_nsuffix[0]; |
nvals[0] = be->be_nsuffix[0]; |
if( attr_merge( e, ad_configContext, vals, nvals ) ) { |
if( attr_merge( e, ad_configContext, vals, nvals ) ) { |
return LDAP_OTHER; |
return LDAP_OTHER; |
} |
} |
continue; |
continue; |
} |
} |
if ( SLAP_GLUE_SUBORDINATE( &backends[i] ) && !SLAP_GLUE_ADVERTISE( &backends[i] ) ) { |
if ( SLAP_GLUE_SUBORDINATE( be ) && !SLAP_GLUE_ADVERTISE( be ) ) { |
continue; |
continue; |
} |
} |
for ( j = 0; backends[i].be_suffix[j].bv_val != NULL; j++ ) { |
for ( j = 0; be->be_suffix[j].bv_val != NULL; j++ ) { |
vals[0] = backends[i].be_suffix[j]; |
vals[0] = be->be_suffix[j]; |
nvals[0] = backends[i].be_nsuffix[0]; |
nvals[0] = be->be_nsuffix[0]; |
if( attr_merge( e, ad_namingContexts, vals, nvals ) ) { |
if( attr_merge( e, ad_namingContexts, vals, nvals ) ) { |
return LDAP_OTHER; |
return LDAP_OTHER; |
} |
} |