]> git.sur5r.net Git - openldap/commitdiff
ITS#8150 let check_name_index handle frontend
authorRyan Tandy <ryan@nardis.ca>
Wed, 20 May 2015 21:39:08 +0000 (14:39 -0700)
committerQuanah Gibson-Mount <quanah@openldap.org>
Wed, 27 May 2015 19:27:45 +0000 (14:27 -0500)
The fix for ITS#7016 only adjusted the frontend entry's DN, but not the
naming attribute in the entry. check_name_index knows how to do both.

servers/slapd/bconfig.c

index aa74b89f25a8e965f68ae695fe1c1c54f28ea8e3..4e796ccc98a715ac6f88be74166609931e4e3b09 100644 (file)
@@ -4679,7 +4679,7 @@ check_name_index( CfEntryInfo *parent, ConfigType ce_type, Entry *e,
        if ( ce_type == Cft_Database )
                nsibs--;
 
-       if ( index != nsibs ) {
+       if ( index != nsibs || isfrontend ) {
                if ( gotindex ) {
                        if ( index < nsibs ) {
                                if ( tailindex ) return LDAP_NAMING_VIOLATION;
@@ -7220,22 +7220,6 @@ config_tool_entry_put( BackendDB *be, Entry *e, struct berval *text )
                                        return NOID;
                                }
                        } else {
-                               if ( !strncmp( e->e_nname.bv_val + 
-                                       STRLENOF( "olcDatabase" ), "=frontend",
-                                       STRLENOF( "=frontend" ) ) )
-                               {
-                                       struct berval rdn, pdn, ndn;
-                                       dnParent( &e->e_nname, &pdn );
-                                       rdn.bv_val = ca.log;
-                                       rdn.bv_len = snprintf(rdn.bv_val, sizeof( ca.log ),
-                                               "%s=" SLAP_X_ORDERED_FMT "%s",
-                                               cfAd_database->ad_cname.bv_val, -1,
-                                               frontendDB->bd_info->bi_type );
-                                       build_new_dn( &ndn, &pdn, &rdn, NULL );
-                                       ber_memfree( e->e_name.bv_val );
-                                       e->e_name = ndn;
-                                       ber_bvreplace( &e->e_nname, &e->e_name );
-                               }
                                entry_put_got_frontend++;
                                isFrontend = 1;
                        }