.TH SLAPD.PLUGIN 5 "RELEASEDATE" "OpenLDAP LDVERSION"
-.\" Copyright 2002 The OpenLDAP Foundation All Rights Reserved.
+.\" Copyright 2002-2006 The OpenLDAP Foundation All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.SH NAME
slapd.plugin \- plugin configuration for slapd, the stand-alone LDAP daemon
.LP
If slapd is compiled with \fI--enable-slapi\fP, support for plugins
according to \fINetscape's Directory Server Plug-Ins\fP.
-Version 4.0 of the API is currently implemented.
+Version 4 of the API is currently implemented, with some extensions
+from version 5.
.LP
-Database specific data may contain plugin information.
+Both global and database specific data may contain plugin information.
+Plugins associated with a specific database are called before global
+plugins.
+This manpage details the
+.BR slapd (8)
+configuration statements that affect the loading of SLAPI \fIplugins\fP.
.LP
Arguments that should be replaced by actual text are shown in brackets <>.
+.LP
The structure of the plugin directives is
.TP
.B plugin "<type> <lib_path> <init_function> [<arguments>]"
that is executed before processing the operation for the specified
database,
.BR postoperation ,
-that is execured after the operation for the specified database
-has been processed, or
-.BR extendedop .
-The latter is used when executing an extended operation [FIXME].
+that is executed after the operation for the specified database
+has been processed,
+.BR extendedop ,
+that is used when executing an extended operation, or
+.BR object .
+The latter is used for miscellaneous types such as ACL, computed
+attribute and search filter rewriter plugins.
.LP
The
.BR <libpath>
argument specifies what symbol must be called when the plugin is first
loaded.
This function should register the functions provided by the plugin
-for the desired operations.
+for the desired operations. It should be noted that it is this
+init function, not the plugin type specified as the first argument,
+that determines when and for what operations the plugin will be invoked.
The optional
.BR <arguments>
list is passed to the init function.
+.TP
+.B pluginlog <file>
+Specify an alternative path for the plugin log file (default is
+LOCALSTATEDIR/error).
+.TP
+.B modulepath <pathspec>
+This statement sets the module load path for dynamically loadable
+backends, as described in
+.BR slapd.conf (5);
+however, since both the dynamically loadable backends
+and the SLAPI plugins use the same underlying library (libtool's ltdl)
+its value also affects the plugin search path.
+In general the search path is made of colon-separated paths; usually
+the user-defined path is searched first; then the value of the
+\fILTDL_LIBRARY_PATH\fP environment variable, if defined, is used;
+finally, the system-specific dynamic load path is attempted (e.g. on
+Linux the value of the environment variable \fILD_LIBRARY_PATH\fP).
+Please carefully read the documentation of ltdl because its behavior
+is very platform dependent.
.SH FILES
.TP
ETCDIR/slapd.conf