--- servers/slapd/overlays/overlays.c 2005/04/29 21:29:10 1.12.2.3 +++ servers/slapd/overlays/overlays.c 2008/02/11 23:24:25 1.12.2.10 @@ -1,8 +1,8 @@ /* overlays.c - Static overlay framework */ -/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/overlays.c,v 1.12.2.2 2005/03/14 22:25:02 kurt Exp $ */ +/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/overlays.c,v 1.12.2.9 2007/01/02 21:44:08 kurt Exp $ */ /* This work is part of OpenLDAP Software . * - * Copyright 2003-2005 The OpenLDAP Foundation. + * Copyright 2003-2008 The OpenLDAP Foundation. * Copyright 2003 by Howard Chu. * All rights reserved. * @@ -23,98 +23,22 @@ #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_DYNLIST == SLAPD_MOD_STATIC -extern int dynlist_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_DYNLIST == SLAPD_MOD_STATIC - { "Dynamic List", dynlist_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; }