ITS#10219 Modify of olcDisabled by removing and adding a value invokes db_open twice

Do not invoke db_open if the database is not actually disabled
This commit is contained in:
Nadezhda Ivanova 2024-05-23 16:09:26 +03:00 committed by Quanah Gibson-Mount
parent 8f05e9ed4d
commit 532b2e60da

View File

@ -1638,14 +1638,16 @@ config_generic(ConfigArgs *c) {
case CFG_DISABLED:
if ( c->bi ) {
c->bi->bi_flags &= ~SLAP_DBFLAG_DISABLED;
if ( c->bi->bi_db_open ) {
BackendInfo *bi_orig = c->be->bd_info;
c->be->bd_info = c->bi;
rc = c->bi->bi_db_open( c->be, &c->reply );
c->be->bd_info = bi_orig;
if ( c->bi->bi_flags & SLAP_DBFLAG_DISABLED ) {
c->bi->bi_flags &= ~SLAP_DBFLAG_DISABLED;
if ( c->bi->bi_db_open ) {
BackendInfo *bi_orig = c->be->bd_info;
c->be->bd_info = c->bi;
rc = c->bi->bi_db_open( c->be, &c->reply );
c->be->bd_info = bi_orig;
}
}
} else {
} else if ( c->be->be_flags & SLAP_DBFLAG_DISABLED ){
c->be->be_flags &= ~SLAP_DBFLAG_DISABLED;
rc = backend_startup_one( c->be, &c->reply );
}