]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/bconfig.c
fix ITS#3753
[openldap] / servers / slapd / bconfig.c
index d8726ff9f481946f6ef346dc91a1aa7b9c125883..356f819e3c662bd90956e95eecfff4ea04a027bd 100644 (file)
@@ -968,11 +968,20 @@ config_generic(ConfigArgs *c) {
                                c->be = LDAP_STAILQ_FIRST(&backendDB);
                        } else if ( !strcasecmp( c->argv[1], "frontend" )) {
                                c->be = frontendDB;
-                       } else if(!(c->be = backend_db_init(c->argv[1]))) {
-                               sprintf( c->msg, "<%s> failed init", c->argv[0] );
-                               Debug(LDAP_DEBUG_ANY, "%s: %s (%s)!\n",
-                                       c->log, c->msg, c->argv[1] );
-                               return(1);
+                       } else {
+                               c->be = backend_db_init(c->argv[1]);
+                               if ( !c->be ) {
+                                       sprintf( c->msg, "<%s> failed init", c->argv[0] );
+                                       Debug(LDAP_DEBUG_ANY, "%s: %s (%s)!\n",
+                                               c->log, c->msg, c->argv[1] );
+                                       return(1);
+                               }
+                               if ( CONFIG_ONLINE_ADD(c) && backend_startup_one( c->be )) {
+                                       sprintf( c->msg, "<%s> failed startup", c->argv[0] );
+                                       Debug(LDAP_DEBUG_ANY, "%s: %s (%s)!\n",
+                                               c->log, c->msg, c->argv[1] );
+                                       return(1);
+                               }
                        }
                        break;