]> git.sur5r.net Git - openldap/commitdiff
pass ConfigReply to overlays; don't complain unless once-only overlays are instantiat...
authorPierangelo Masarati <ando@openldap.org>
Thu, 27 Dec 2007 17:36:39 +0000 (17:36 +0000)
committerPierangelo Masarati <ando@openldap.org>
Thu, 27 Dec 2007 17:36:39 +0000 (17:36 +0000)
servers/slapd/backover.c
servers/slapd/config.h
servers/slapd/slap.h

index 874ccf065abf33ff4f1657c6ffffa69c7ed12c02..2eb131addb83f26912672428e785fc564487be2f 100644 (file)
@@ -39,6 +39,7 @@ enum db_which {
 static int
 over_db_func(
        BackendDB *be,
+       ConfigReply *cr,
        enum db_which which
 )
 {
@@ -51,14 +52,14 @@ over_db_func(
        func = &oi->oi_orig->bi_db_open;
        if ( func[which] ) {
                be->bd_info = oi->oi_orig;
-               rc = func[which]( be, NULL );
+               rc = func[which]( be, cr );
        }
 
        for (; on && rc == 0; on=on->on_next) {
                be->bd_info = &on->on_bi;
                func = &on->on_bi.bi_db_open;
                if (func[which]) {
-                       rc = func[which]( be, NULL );
+                       rc = func[which]( be, cr );
                }
        }
        be->bd_info = bi_orig;
@@ -172,7 +173,7 @@ over_db_open(
        ConfigReply *cr
 )
 {
-       return over_db_func( be, db_open );
+       return over_db_func( be, cr, db_open );
 }
 
 static int
@@ -189,13 +190,13 @@ over_db_close(
        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, NULL );
+                       rc = be->bd_info->bi_db_close( be, cr );
                }
        }
 
        if ( oi->oi_orig->bi_db_close ) {
                be->bd_info = oi->oi_orig;
-               rc = be->bd_info->bi_db_close( be, NULL );
+               rc = be->bd_info->bi_db_close( be, cr );
        }
 
        be->bd_info = bi_orig;
@@ -212,7 +213,7 @@ over_db_destroy(
        slap_overinst *on = oi->oi_list, *next;
        int rc;
 
-       rc = over_db_func( be, db_destroy );
+       rc = over_db_func( be, cr, db_destroy );
 
        if ( on ) {
                for (next = on->on_next; on; on=next) {
@@ -1248,10 +1249,10 @@ overlay_config( BackendDB *be, const char *ov, int idx, BackendInfo **res )
 
        } else {
                if ( overlay_is_inst( be, ov ) ) {
-                       Debug( LDAP_DEBUG_ANY, "overlay_config(): "
-                               "overlay \"%s\" already in list\n",
-                               ov, 0, 0 );
                        if ( SLAPO_SINGLE( be ) ) {
+                               Debug( LDAP_DEBUG_ANY, "overlay_config(): "
+                                       "overlay \"%s\" already in list\n",
+                                       ov, 0, 0 );
                                return 1;
                        }
                }
index 61b2dc65b193c166f0c4df6f8825876b5a7f9cce..5964b8df9af548346aa018c753552080a286db73 100644 (file)
@@ -108,10 +108,10 @@ typedef struct ConfigOCs {
 
 typedef int (ConfigDriver)(struct config_args_s *c);
 
-typedef struct config_reply_s {
+struct config_reply_s {
        int err;
        char msg[SLAP_TEXT_BUFLEN];
-} ConfigReply;
+};
 
 typedef struct config_args_s {
        int argc;
index 20e2eb3ca611113346654edf0d4954785fed610a..3109b20efa4f4f68b98b0f05fd498d802cafb368 100644 (file)
@@ -1903,8 +1903,8 @@ typedef int (BI_config) LDAP_P((BackendInfo *bi,
        const char *fname, int lineno,
        int argc, char **argv));
 
-struct config_reply_s ; /* config.h */
-typedef int (BI_db_func) LDAP_P((Backend *bd, struct config_reply_s *c));
+typedef struct config_reply_s ConfigReply; /* config.h */
+typedef int (BI_db_func) LDAP_P((Backend *bd, ConfigReply *cr));
 typedef BI_db_func BI_db_init;
 typedef BI_db_func BI_db_open;
 typedef BI_db_func BI_db_close;