]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/overlays/overlays.c
Merge remote-tracking branch 'origin/mdb.master' into OPENLDAP_REL_ENG_2_4
[openldap] / servers / slapd / overlays / overlays.c
index 8b1a19ec98c7d366b5fd9dfac732a325f54c90af..c2257078c50f6feee14ce86aa785f0533e939e77 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2003-2005 The OpenLDAP Foundation.
+ * Copyright 2003-2013 The OpenLDAP Foundation.
  * Copyright 2003 by Howard Chu.
  * All rights reserved.
  *
 
 #include "slap.h"
 
-#if SLAPD_OVER_DENYOP == SLAPD_MOD_STATIC
-extern int denyop_init();
-#endif
-#if SLAPD_OVER_DYNGROUP == SLAPD_MOD_STATIC
-extern int dyngroup_init();
-#endif
-#if SLAPD_OVER_GLUE == SLAPD_MOD_STATIC
-extern int glue_init();
-#endif
-#if SLAPD_OVER_LASTMOD == SLAPD_MOD_STATIC
-extern int lastmod_init();
-#endif
-#if SLAPD_OVER_PPOLICY == SLAPD_MOD_STATIC
-extern int ppolicy_init();
-#endif
-#if SLAPD_OVER_PROXYCACHE == SLAPD_MOD_STATIC
-extern int pcache_init();
-#endif
-#if SLAPD_OVER_REFINT == SLAPD_MOD_STATIC
-extern int refint_init();
-#endif
-#if SLAPD_OVER_RWM == SLAPD_MOD_STATIC
-extern int rwm_init();
-#endif
-#if SLAPD_OVER_SYNCPROV == SLAPD_MOD_STATIC
-extern int syncprov_init();
-#endif
-#if SLAPD_OVER_TRANSLUCENT == SLAPD_MOD_STATIC
-extern int translucent_init();
-#endif
-#if SLAPD_OVER_UNIQUE == SLAPD_MOD_STATIC
-extern int unique_init();
-#endif
-
-static struct {
-       char *name;
-       int (*func)();
-} funcs[] = {
-#if SLAPD_OVER_DENYOP == SLAPD_MOD_STATIC
-       { "Deny Operation", denyop_init },
-#endif
-#if SLAPD_OVER_DYNGROUP == SLAPD_MOD_STATIC
-       { "Dynamic Group", dyngroup_init },
-#endif
-#if SLAPD_OVER_GLUE == SLAPD_MOD_STATIC
-       { "Backend Glue", glue_init },
-#endif
-#if SLAPD_OVER_LASTMOD == SLAPD_MOD_STATIC
-       { "Last Modification", lastmod_init },
-#endif
-#if SLAPD_OVER_PPOLICY == SLAPD_MOD_STATIC
-       { "Password Policy", ppolicy_init },
-#endif
-#if SLAPD_OVER_PROXYCACHE == SLAPD_MOD_STATIC
-       { "Proxy Cache", pcache_init },
-#endif
-#if SLAPD_OVER_REFINT == SLAPD_MOD_STATIC
-       { "Referential Integrity", refint_init },
-#endif
-#if SLAPD_OVER_RWM == SLAPD_MOD_STATIC
-       { "Rewrite/Remap", rwm_init },
-#endif
-#if SLAPD_OVER_SYNCPROV == SLAPD_MOD_STATIC
-       { "Syncrepl Provider", syncprov_init },
-#endif
-#if SLAPD_OVER_TRANSLUCENT == SLAPD_MOD_STATIC
-       { "Translucent Proxy", translucent_init },
-#endif
-#if SLAPD_OVER_UNIQUE == SLAPD_MOD_STATIC
-       { "Attribute Uniqueness", unique_init },
-#endif
-       { NULL, NULL }
-};
+extern OverlayInit     slap_oinfo[];
 
 int
 overlay_init(void)
 {
        int i, rc = 0;
 
-       for ( i=0; funcs[i].name; i++ ) {
-               rc = funcs[i].func();
+       for ( i= 0 ; slap_oinfo[i].ov_type; i++ ) {
+               rc = slap_oinfo[i].ov_init();
                if ( rc ) {
                        Debug( LDAP_DEBUG_ANY,
-               "%s overlay setup failed, err %d\n", funcs[i].name, rc, 0 );
+                               "%s overlay setup failed, err %d\n",
+                               slap_oinfo[i].ov_type, rc, 0 );
                        break;
                }
        }
+
        return rc;
 }