# slapd.plugin

## NAME



           slapd.plugin - plugin configuration for slapd, the stand-alone
           LDAP daemon
    


## SYNOPSIS



           ETCDIR/slapd.conf
    


## DESCRIPTION



           The slapd.conf(5) file contains configuration information for the
           slapd(8) daemon. This configuration file is also used by the SLAPD
           tools slapadd(8), slapcat(8), slapmodify(8), and slapindex(8).
    
           The **slapd.conf** file consists of a series of global configuration
           options that apply to **slapd** as a whole (including all backends),
           followed by zero or more database backend definitions that contain
           information specific to a backend instance.
    
           The general format of **slapd.conf** is as follows:
    
               # comment - these options apply to every database
               <global configuration options>
               # first database definition & configuration options
               database    <backend 1 type>
               <configuration options specific to backend 1>
               # subsequent database definitions & configuration options
               ...
    
           If slapd is compiled with _--enable-slapi_ , support for plugins
           according to _Netscape's Directory Server Plug-Ins_.  Version 4 of
           the API is currently implemented, with some extensions from
           version 5.
    
           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 slapd(8)
           configuration statements that affect the loading of SLAPI _plugins_.
    
           Arguments that should be replaced by actual text are shown in
           brackets <>.
    
           The structure of the plugin directives is
    
           **plugin <type> <lib_path> <init_function> [<arguments>]**
                  Load a plugin of the specified type for the current
                  database.
    
           The **< type> **can be one of **preoperation** , that is executed before
           processing the operation for the specified database,
           **postoperation** , that is executed after the operation for the
           specified database has been processed, **extendedop** , that is used
           when executing an extended operation, or **object**.  The latter is
           used for miscellaneous types such as ACL, computed attribute and
           search filter rewriter plugins.
    
           The **< libpath> **argument specifies the path to the plugin loadable
           object; if a relative path is given, the object is looked for
           according to the underlying dynamic loading package (libtool's
           ltdl is used).
    
           The **< init_function> **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.
           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
           **< arguments> **list is passed to the init function.
    
           **pluginlog <file>**
                  Specify an alternative path for the plugin log file
                  (default is LOCALSTATEDIR/errors).
    
           **modulepath <pathspec>**
                  This statement sets the module load path for dynamically
                  loadable backends, as described in 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 _LTDL_LIBRARY_PATH_ 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 _LD_LIBRARY_PATH_).  Please carefully read the
                  documentation of ltdl because its behavior is very platform
                  dependent.
    


## FILES



           ETCDIR/slapd.conf
                  default slapd configuration file
    
           LOCALSTATEDIR/errors
                  default plugin log file
    


## ACKNOWLEDGEMENTS



           **OpenLDAP Software** is developed and maintained by The OpenLDAP
           Project <http://www.openldap.org/>.  **OpenLDAP Software** is derived
           from the University of Michigan LDAP 3.3 Release.
    


* * *