summaryrefslogtreecommitdiffstats
path: root/ldap/servers/slapd/slap.h
diff options
context:
space:
mode:
Diffstat (limited to 'ldap/servers/slapd/slap.h')
-rw-r--r--ldap/servers/slapd/slap.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/ldap/servers/slapd/slap.h b/ldap/servers/slapd/slap.h
index 76c8df26..35fc1f59 100644
--- a/ldap/servers/slapd/slap.h
+++ b/ldap/servers/slapd/slap.h
@@ -691,6 +691,12 @@ struct matchingRuleList {
#define ATTR_PLUGIN_INVOKE_FOR_REPLOP "nsslapd-invokeForReplOp"
#define ATTR_PLUGIN_LOAD_NOW "nsslapd-pluginLoadNow"
#define ATTR_PLUGIN_LOAD_GLOBAL "nsslapd-pluginLoadGlobal"
+#define ATTR_PLUGIN_PRECEDENCE "nsslapd-pluginPrecedence"
+
+/* plugin precedence defines */
+#define PLUGIN_DEFAULT_PRECEDENCE 50
+#define PLUGIN_MIN_PRECEDENCE 1
+#define PLUGIN_MAX_PRECEDENCE 99
/* plugin action states */
enum
@@ -738,16 +744,17 @@ struct pluginconfig{
struct slapdplugin {
void *plg_private; /* data private to plugin */
char *plg_version; /* version of this plugin */
- int plg_argc; /* argc from config file */
+ int plg_argc; /* argc from config file */
char **plg_argv; /* args from config file */
char *plg_libpath; /* library path for dll/so */
- char *plg_initfunc; /* init symbol */
+ char *plg_initfunc; /* init symbol */
IFP plg_close; /* close function */
Slapi_PluginDesc plg_desc; /* vendor's info */
- char *plg_name; /* used for plugin rdn in cn=config */
+ char *plg_name; /* used for plugin rdn in cn=config */
struct slapdplugin *plg_next; /* for plugin lists */
int plg_type; /* discriminates union */
- char *plg_dn; /* config dn for this plugin */
+ char *plg_dn; /* config dn for this plugin */
+ int plg_precedence; /* for plugin execution ordering */
struct slapdplugin *plg_group; /* pointer to the group to which this plugin belongs */
struct pluginconfig plg_conf; /* plugin configuration parameters */
IFP plg_cleanup; /* cleanup function */