]> git.sur5r.net Git - openldap/commitdiff
Let the overlay run before the backend in bi_db_close
authorHoward Chu <hyc@openldap.org>
Sat, 27 Nov 2004 14:43:07 +0000 (14:43 +0000)
committerHoward Chu <hyc@openldap.org>
Sat, 27 Nov 2004 14:43:07 +0000 (14:43 +0000)
servers/slapd/backover.c

index a834d702d79f0ec391a45e1e3f1ac79227ac6787..5547bcd6c48ed8a9734c644ab201b0a918089e12 100644 (file)
@@ -148,7 +148,25 @@ over_db_close(
        BackendDB *be
 )
 {
-       return over_db_func( be, db_close );
+       slap_overinfo *oi = be->bd_info->bi_private;
+       slap_overinst *on = oi->oi_list;
+       BackendInfo *bi_orig = be->bd_info;
+       int rc = 0;
+
+       for (; on && rc == 0; on=on->on_next) {
+               be->bd_info = &on->on_bi;
+               if ( be->bd_info->bi_db_close ) {
+                       rc = be->bd_info->bi_db_close( be );
+               }
+       }
+
+       if ( be->bd_info->bi_db_close ) {
+               be->bd_info = oi->oi_orig;
+               rc = be->bd_info->bi_db_close( be );
+       }
+
+       be->bd_info = bi_orig;
+       return rc;
 }
 
 static int