This chapter describes the parameters available in the Slapi_PBlock parameter block, the type of data associated with each parameter, and the plug-in functions in which those parameters are accessible.
To get the values of these parameters, call the slapi_pblock_get() function. To set the values of these parameters, call the slapi_pblock_set() function. Using these parameters, you can get and set the following information:
Parameters for Registering Plug-In Functions
Parameters Accessible to All Plug-Ins
Parameters for the Configuration Function
Parameters for the Bind Function
Parameters for the Search Function
Parameters for the Add Function
Parameters for the Compare Function
Parameters for the Delete Function
Parameters for the Modify Function
Parameters for the Modify RDN Function
Parameters for the Abandon Function
Parameters for Database Import
Parameters for Database Export
Parameters for Database Archive
Parameters for Database Restore
Parameters for Database Indexing
Parameters for Extended Operations
Parameters for Internal LDAP Operations
Parameters for Matching Rule Plug-Ins
Note. With the exception of the parameters for matching rule plug-in functions, you do not need to get the value of any of these parameters.
The parameters for registering plug-in functions are organized in the following sections:
Database Plug-Ins
Pre-Operation/Data Validation Plug-Ins
Post-Operation/Data Notification Plug-Ins
Extended Operation Plug-Ins
Matching Rule Plug-Ins
The parameters listed in this section are used to register database plug-in functions.
Each parameter corresponds to an operation performed by the back-end database. When integrating your own database with the Directory Server, you need to write and register your own plug-in functions that handle these operations.
To register your plug-in function, write an initialization function that sets the values of the following parameters to your functions.
The parameters listed in this section are used to register pre-operation/data validation plug-in functions.
The parameters listed in this section are used to register post-operation/data notification plug-in functions.
The parameters listed below are used to register extended operation plug-in functions.
The parameters listed in below are used to register matching rule plug-in functions.
Information About the Database
Information About the Connection
Information About the Operation
Notes in the Access Log
Information About the Plug-In
The parameters listed below specify information about the back-end database. These parameters are available for all types of plug-ins. Note that these specific parameters can not be set by calling slapi_pblock_set(). You can, however, get these parameters by calling slapi_pblock_get().
The parameters listed below specify information about the connection. These parameters are available for all types of plug-ins.
The parameters listed below specify information about the current operation. These parameters are available for all types of plug-ins.
This feature is available in the Netscape Directory Server 4.0 release and is not available in earlier releases.
The parameters listed below specify notes that can be appended to access log entries. These parameters are available for all types of plug-ins.
For more information, see "Adding Notes to Access Log Entries" on page 50.
The parameters listed below specify information about the plug-in that is available to all plug-in functions defined in the current library. These parameters are available for all types of plug-ins.
Types of Plug-Ins
The SLAPI_PLUGIN_TYPE parameter can have one of the following values, which identifies the type of the current plug-in (see Table 2.1 for a more detailed description of the types of server plug-ins):
Version Information
To set the value of the SLAPI_PLUGIN_VERSION parameter, you can specify one of the following values:
See "Reading Configuration Files" on page 98 for more information on these parameters.
See "Processing an LDAP Bind Operation" on page 99 for more information on these parameters.
The following parameters are set by the front-end and back-end as part of the process of executing the search. .
See "Processing an LDAP Search Operation" on page 101 and "Iterating through Candidates" on page 104 for more information on these parameters.
See "Processing an LDAP Add Operation" on page 106 for more information on these parameters.
See "Processing an LDAP Compare Operation" on page 105 for more information on these parameters.
See "Processing an LDAP Delete Operation" on page 111 for more information on these parameters.
See "Processing an LDAP Modify Operation" on page 108 for more information on these parameters.
See "Processing an LDAP Modify RDN Operation" on page 109 for more information on these parameters.
See "Processing an LDAP Abandon Operation" on page 112 for more information on these parameters.
See "Importing an LDIF File into the Database" on page 114 for more information on these parameters.
Se e "Importing an LDIF File into the Database" on page 114 for more information on these parameters.
Se e "Saving the Database as an Archive" on page 117 for more information on these parameters.
Se e "Restoring the Database from an Archive" on page 117 for more information on these parameters.
The following table lists the parameters in the parameter block passed to the database indexing function, which is responsible for generating indexes for the database. If you are writing your own plug-in function for performing this work, you can get these values by calling the slapi_pblock_get() function.
Se e "Generating Indexes for the Database" on page 118 for more information on these parameters.
The following functions set all three parameters:
slapi_search_internal()
slapi_search_internal_callback()
slapi_add_internal()
slapi_add_entry_internal()
slapi_delete_internal()
slapi_modify_internal()
slapi_modrdn_internal()
The following parameters are listed in the slapi-plugin.h header file but are not currently used:
SLAPI_MR_FILTER_ENTRY
SLAPI_MR_FILTER_TYPE
SLAPI_MR_FILTER_VALUE
SLAPI_MR_FILTER_OID
SLAPI_MR_FILTER_DNATTRS
[?? THE REST OF THIS SECTION IS WIP ??]
[?? Might take this out. Don't know if all this is necessary. ??]
The front-end checks for inconsistencies in this information (for example, if an LDAP v2 client is trying to use the SASL authentication method).
The front-end also checks for LDAP v3 controls in the request. (In LDAP v3, a request can include a control that provides additional information to extend the current operation.) If the control is critical and is not supported by the Directory Server or is not supported for this operation, the front-end returns an LDAP_UNAVAILABLE_CRITICAL_EXTENSION error to the client.
If the request contains controls supported by the Directory Server, the front-end sets the controls as the value of the SLAPI_REQCONTROLS parameter in the parameter block.