]> git.sur5r.net Git - openldap/commitdiff
init 'oi' also when the backend already has overlays...
authorPierangelo Masarati <ando@openldap.org>
Tue, 16 Mar 2004 21:55:45 +0000 (21:55 +0000)
committerPierangelo Masarati <ando@openldap.org>
Tue, 16 Mar 2004 21:55:45 +0000 (21:55 +0000)
servers/slapd/backover.c

index 21ced8051a2ebf60a195974c20b2a8ad5e54e5c8..d97225ac47c833d1b979a2c8acca75140242a4c7 100644 (file)
@@ -267,15 +267,27 @@ overlay_register(
        return 0;
 }
 
+slap_overinst *
+overlay_next(
+       slap_overinst *on
+)
+{
+       if ( on == NULL ) {
+               return overlays;
+       }
+
+       return on->on_next;
+}
+
 static const char overtype[] = "over";
 
 /* add an overlay to a particular backend. */
 int
 overlay_config( BackendDB *be, const char *ov )
 {
-       slap_overinst *on, *on2, *prev;
-       slap_overinfo *oi;
-       BackendInfo *bi;
+       slap_overinst *on = NULL, *on2 = NULL, *prev = NULL;
+       slap_overinfo *oi = NULL;
+       BackendInfo *bi = NULL;
 
        for ( on = overlays; on; on=on->on_next ) {
                if (!strcmp( ov, on->on_bi.bi_type ) )
@@ -316,13 +328,15 @@ overlay_config( BackendDB *be, const char *ov )
                bi->bi_extended = over_op_extended;
 
                be->bd_info = bi;
+
+       } else {
+               oi = (slap_overinfo *) be->bd_info;
        }
 
 #if 0
        /* Walk to the end of the list of overlays, add the new
         * one onto the end
         */
-       oi = (slap_overinfo *) be->bd_info;
        for ( prev=NULL, on2 = oi->oi_list; on2; prev=on2, on2=on2->on_next );
        on2 = ch_calloc( 1, sizeof(slap_overinst) );
        if ( !prev ) {