X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fbackend.c;h=530410362cc165631370bde305185b41f1baa2bd;hb=f89308915aabff352eb390a1e58a71127b7ebd26;hp=61bfb2ae0445784647f14e1ec10b7215a096c45d;hpb=0e2af54a3ffdeebe3901370683be56fcc53023b0;p=openldap diff --git a/servers/slapd/backend.c b/servers/slapd/backend.c index 61bfb2ae04..530410362c 100644 --- a/servers/slapd/backend.c +++ b/servers/slapd/backend.c @@ -533,9 +533,11 @@ select_backend( for ( j = 0; backends[i].be_nsuffix != NULL && backends[i].be_nsuffix[j] != NULL; j++ ) { - if ((backends[i].be_glueflags&SLAP_GLUE_SUBORDINATE)&& - noSubs) + if (( backends[i].be_flags & SLAP_BFLAG_GLUE_SUBORDINATE ) + && noSubs ) + { continue; + } len = backends[i].be_nsuffix[j]->bv_len; @@ -604,7 +606,7 @@ be_isroot( Backend *be, struct berval *ndn ) return( 0 ); } - return strcmp( be->be_rootndn.bv_val, ndn->bv_val ) ? 0 : 1; + return dn_match( &be->be_rootndn, ndn ); } int @@ -618,7 +620,7 @@ be_isupdate( Backend *be, struct berval *ndn ) return( 0 ); } - return strcmp( be->be_update_ndn.bv_val, ndn->bv_val ) ? 0 : 1; + return dn_match( &be->be_update_ndn, ndn ); } struct berval * @@ -992,12 +994,11 @@ backend_group( ldap_pvt_thread_mutex_unlock( &op->o_abandonmutex ); if (i) return SLAPD_ABANDON; - if( target->e_nname.bv_len != gr_ndn->bv_len || - strcmp( target->e_nname.bv_val, gr_ndn->bv_val ) != 0 ) { + if ( !dn_match( &target->e_nname, gr_ndn ) ) { /* we won't attempt to send it to a different backend */ be = select_backend( gr_ndn, 0, - (be->be_glueflags & SLAP_GLUE_INSTANCE)); + (be->be_flags & SLAP_BFLAG_GLUE_INSTANCE)); if (be == NULL) { return LDAP_NO_SUCH_OBJECT; @@ -1049,16 +1050,14 @@ backend_attribute( Entry *target, struct berval *edn, AttributeDescription *entry_at, - BVarray *vals + BerVarray *vals ) { - if( target == NULL || target->e_nname.bv_len != edn->bv_len || - strcmp( target->e_ndn, edn->bv_val ) != 0 ) - { + if ( target == NULL || !dn_match( &target->e_nname, edn ) ) { /* we won't attempt to send it to a different backend */ be = select_backend( edn, 0, - (be->be_glueflags & SLAP_GLUE_INSTANCE)); + (be->be_flags & SLAP_BFLAG_GLUE_INSTANCE)); if (be == NULL) { return LDAP_NO_SUCH_OBJECT;