Show Table of Contents Hide Table of Contents English English Multi-page HTML Single-page HTML PDF ePub Plug-in GuidePreface1. Required ConceptsI. Introduction to Directory Server Plug-ins1. An Overview of Directory Server Plug-ins1.1. About Directory Server Plug-ins1.2. How Directory Server Plug-ins Work1.2.1. Calling Directory Server Plug-in Functions1.2.2. The Directory Server Architecture1.3. Types of Directory Server Plug-ins1.4. Using Directory Server Plug-in APIs1.5. Deprecated Functions and Replacements2. Writing and Compiling Plug-ins2.1. Writing a Plug-in Function2.1.1. Including the API Header File2.1.2. Passing Data with Parameter Blocks2.1.3. Working with Parameter Blocks2.1.3.1. Getting Data from the Parameter Block2.1.3.2. Setting Data in the Parameter Block2.1.4. Calling Front-end Functions2.1.5. Plug-in Return Values2.2. Writing Plug-in Initialization Functions2.2.1. Specifying Directory Server Compatibility2.2.2. Specifying Information about the Plug-in2.2.3. Registering Your Plug-in Functions2.2.4. Returning a Value to the Directory Server2.2.5. Example of an Initialization Function2.3. Compiling a Directory Server Plug-in3. Configuring Plug-ins3.1. Creating a Plug-in Configuration File3.1.1. Setting Plug-in Dependencies3.1.1.1. Specific Plug-in Dependencies3.1.1.2. Plug-in Type Dependencies3.1.2. Specifying the Order of Plug-ins3.1.3. Summary of Plug-in Directives3.2. Plug-in Logging Features3.3. Loading the Plug-in Configuration File3.4. Passing Extra Arguments to Plug-ins3.5. Setting the Log Level of the Server4. An Example Plug-in4.1. Writing the Plug-in Example4.2. Compiling the Plug-in Example4.3. Registering the Plug-in4.4. Running the Plug-inII. Writing Functions and Plug-ins5. Frontend API Functions5.1. Logging Messages5.2. Adding Notes to Access Log Entries5.3. Sending Data to the Client5.4. Determining If an Operation Was Abandoned5.5. Working with Entries, Attributes, and Values5.5.1. Creating a New Entry5.5.2. Converting Between Entries and Strings5.5.3. Miscellaneous Operations5.5.3.1. Getting and Setting the DN of an Entry5.5.3.2. Verifying Compliance with the Schema5.5.3.3. Getting the Attributes and Values of an Entry5.5.3.4. Adding and Removing Values5.6. Working with DNs and RDNs5.6.1. Determining If a DN Is the Root DN5.6.2. Working with DN Suffixes5.6.3. Getting the Parent DN of a DN5.6.4. Normalizing a DN5.7. Working with Search Filters5.7.1. Determining If an Entry Matches a Filter5.7.2. Getting the Filter Type5.7.3. Getting the Search Criteria5.7.4. Converting a String to a Filter5.7.5. Creating Complex Filters by Combining Filters5.8. Checking Passwords6. Writing Pre- and Post-operation Plug-ins6.1. How Pre- and Post-operation Plug-ins Work6.2. Types of Pre-operation and Post-operation Functions6.2.1. Types of Pre-operation Functions6.2.2. Types of Post-operation Functions6.3. Using Plug-in Configuration Information in Preop Plug-ins6.4. Registering Pre- and Post-operation Functions7. Defining Functions for LDAP Operations7.1. Specifying Start and Close Functions7.2. Processing an LDAP Bind Operation7.2.1. Defining Functions for the Bind Operation7.2.2. Getting and Setting Parameters for the Bind Operation7.3. Processing an LDAP Unbind Operation7.4. Processing an LDAP Search Operation7.4.1. Getting the List of Candidates7.4.2. Iterating through Candidates7.5. Processing an LDAP Compare Operation7.6. Processing an LDAP Add Operation7.7. Processing an LDAP Modify Operation7.8. Processing an LDAP Modify RDN Operation7.9. Processing an LDAP Delete Operation7.10. Processing an LDAP Abandon Operation8. Defining Functions for Authentication8.1. Understanding Authentication Methods8.2. How the Directory Server Identifies Clients8.3. How the Authentication Process Works8.4. Writing Your Own Authentication Plug-in8.5. Writing a Pre-Operation Bind Plug-in8.5.1. Defining the Authentication Function8.5.1.1. Getting and Checking the Bind Parameters8.5.1.2. Getting the Entry and Checking the Credentials8.5.1.3. What to Do If Authentication Fails8.5.1.4. What to Do If Authentication Succeeds8.5.2. Registering the SASL Mechanism8.5.3. Example of a Pre-Operation Bind Plug-in8.5.3.1. Example of a Pre-Operation Bind Function8.5.3.2. Example of an Initialization Function 8.5.3.3. Registering the Plug-in9. Writing Entry Store/Fetch Plug-ins9.1. How Entry Store/Fetch Plug-ins Work9.2. Writing Entry Store/Fetch Functions9.3. Registering Entry Store/Fetch Functions10. Writing Extended Operation Plug-ins10.1. How Extended Operation Plug-ins Work10.2. Writing Extended Operation Functions10.3. Registering Extended Operation Functions10.4. Specifying Start and Close Functions11. Writing Matching Rule Plug-ins11.1. Understanding Matching Rules11.1.1. Extensible Match Filters11.1.2. Extensible Match Filters in the Directory Server11.2. Understanding Matching Rule Plug-ins11.2.1. Functions Defined in Matching Rule Plug-ins11.2.2. How Matching Rules Are Identified11.2.3. How the Server Associates Plug-ins with OIDs11.2.3.1. Finding a Plug-in for Indexing 11.2.3.2. Finding a Plug-in for Searching 11.2.4. How the Server Uses Parameter Blocks11.3. Indexing Based on Matching Rules11.3.1. How the Server Sets Up the Index11.3.2. How the Server Updates the Index11.3.3. Writing the Indexer Factory Function11.3.4. Getting and Setting Parameters in Indexer Factory Functions11.3.5. Writing the Indexer Function11.3.6. Getting and Setting Parameters in Indexer Functions11.4. Handling Extensible Match Filters11.4.1. How the Server Handles the Filter11.4.2. Query Operators in Matching Rules11.4.3. Writing a Filter Factory Function11.4.4. Getting and Setting Parameters in Filter Factory Functions11.4.5. Writing a Filter Index Function11.4.6. Getting and Setting Parameters in Filter Index Functions11.4.7. Writing a Filter Matching Function11.5. Handling Sorting by Matching Rules11.6. Writing a Destructor Function11.7. Writing an Initialization Function11.8. Registering Matching Rule Functions11.9. Specifying Start and Close Functions12. Using the Custom Distribution Logic12.1. About Distributing Flat Namespaces12.2. Creating a Distribution Function12.3. Adding the Distribution Function to Your Directory12.3.1. Adding Multiple Databases to a Single Suffix12.3.1.1. Using the Console12.3.1.2. Using the Command-Line12.3.2. Adding Distribution Logic to a Suffix12.3.2.1. Using the Console 12.3.2.2. Using the Command-Line 12.4. Using the Distribution Logic Examples12.5. Custom Distribution Checklist13. Using Data Interoperability Plug-ins13.1. Installing Directory Server13.1.1. Understanding Deployment Configuration13.1.2. Installing Two Instances of Directory Server13.2. Enabling the DIOP Feature in Directory Server13.3. Using the DIOP Feature13.4. Sample DIOP Plug-in13.4.1. Debugging the Plug-in13.5. Plug-in API Reference13.5.1. Preserving the Default Behavior of the Server13.5.2. Bypassing Access Control ChecksIII. Data Type and Structure Reference14. Data Type and Structure Reference14.1. berval14.2. computed_attr_context14.3. LDAPControl14.4. LDAPMod14.5. mrFilterMatchFn14.6. plugin_referral_entry_callback14.7. plugin_result_callback14.8. plugin_search_entry_callback14.9. send_ldap_referral_fn_ptr_t14.10. send_ldap_result_fn_ptr_t14.11. send_ldap_search_entry_fn_ptr_t14.12. Slapi_Attr14.13. Slapi_Backend14.14. slapi_backend_state_change_fnptr14.15. Slapi_ComponentID14.16. slapi_compute_callback_t14.17. slapi_compute_output_t14.18. Slapi_Connection14.19. Slapi_CondVar14.20. Slapi_Counter14.21. Slapi_DN14.22. Slapi_Entry14.23. Slapi_Filter14.24. Slapi_MatchingRuleEntry14.25. Slapi_Mod14.26. Slapi_Mods14.27. Slapi_Mutex14.28. Slapi_Operation14.29. Slapi_PBlock14.30. Slapi_PluginDesc14.31. Slapi_RDN14.32. Slapi_Task14.32.1. dseCallbackFn14.32.2. TaskCallbackFn14.33. Slapi_UniqueID14.34. Slapi_Value14.35. Slapi_ValueSet14.36. Replication Session Hooks Callbacks14.36.1. repl_session_plugin_agmt_init_cb14.36.2. repl_session_plugin_pre_acquire_cb14.36.3. repl_session_plugin_reply_acquire_cb14.36.4. repl_session_plugin_post_acquire_cb14.36.5. repl_session_plugin_recv_acquire_cb14.36.6. repl_session_plugin_destroy_agmt_cb14.37. Synchronization Callbacks and Data Types14.37.1. winsync_can_add_to_ad_cb14.37.2. winsync_get_new_dn_cb14.37.3. winsync_plugin_init_cb14.37.4. winsync_pre_add_cb14.37.5. winsync_pre_ad_mod_mods_cb14.37.6. winsync_pre_mod_cb14.37.7. winsync_search_params_cbIV. Function Reference15. Distribution Routines15.1. distribution_plugin_entry_point()16. Functions for Access Control16.1. slapi_access_allowed()16.2. slapi_acl_check_mods()16.3. slapi_acl_verify_aci_syntax()17. Functions for Internal Operations and Plug-in Callback17.1. slapi_add_internal_pb()17.2. slapi_delete_internal_pb()17.3. slapi_free_search_results_internal()17.4. slapi_modify_internal_pb()17.5. slapi_modrdn_internal_pb()17.6. slapi_search_internal_callback_pb()17.7. slapi_search_internal_get_entry()17.8. slapi_search_internal_pb()18. Functions for Setting Internal Operation Flags18.1. slapi_add_entry_internal_set_pb()18.2. slapi_add_internal_set_pb()18.3. slapi_delete_internal_set_pb()18.4. slapi_modify_internal_set_pb()18.5. slapi_rename_internal_set_pb()18.6. slapi_search_internal_set_pb()18.7. slapi_seq_internal_callback_pb()18.8. slapi_seq_internal_set_pb()19. Functions for Handling Attributes19.1. slapi_attr_add_value()19.2. slapi_attr_basetype()19.3. slapi_attr_dup()19.4. slapi_attr_first_value()19.5. slapi_attr_flag_is_set()19.6. slapi_attr_free()19.7. slapi_attr_get_bervals_copy()19.8. slapi_attr_get_flags()19.9. slapi_attr_get_numvalues()19.10. slapi_attr_get_oid_copy()19.11. slapi_attr_get_type()19.12. slapi_attr_get_valueset()19.13. slapi_attr_init()19.14. slapi_attr_new()19.15. slapi_attr_next_value()19.16. slapi_attr_set_valueset()19.17. slapi_attr_syntax_normalize()19.18. slapi_attr_type2plugin()19.19. slapi_attr_type_cmp()19.20. slapi_attr_types_equivalent()19.21. slapi_attr_value_cmp()19.22. slapi_attr_value_find()19.23. slapi_valueset_set_from_smod()20. Functions for Managing Backend Operations20.1. slapi_be_addsuffix()20.2. slapi_be_delete_onexit()20.3. slapi_be_exist()20.4. slapi_be_free()20.5. slapi_be_get_instance_info()20.6. slapi_be_get_name()20.7. slapi_be_get_readonly()20.8. slapi_be_getentrypoint()20.9. slapi_be_getsuffix()20.10. slapi_be_gettype()20.11. slapi_be_is_flag_set()20.12. slapi_be_issuffix()20.13. slapi_be_logchanges()20.14. slapi_be_new()20.15. slapi_be_private()20.16. slapi_be_select()20.17. slapi_be_select_by_instance_name()20.18. slapi_be_set_flag()20.19. slapi_be_set_instance_info()20.20. slapi_be_set_readonly()20.21. slapi_be_setentrypoint()20.22. slapi_get_first_backend()20.23. slapi_get_first_suffix()20.24. slapi_get_next_backend()20.25. slapi_get_next_suffix()20.26. slapi_is_root_suffix()20.27. slapi_register_backend_state_change()20.28. slapi_unregister_backend_state_change()21. Functions for Dealing with Controls21.1. slapi_add_control_ext()21.2. slapi_add_controls()21.3. slapi_build_control()21.4. slapi_build_control_from_berval()21.5. slapi_control_present()21.6. slapi_dup_control()21.7. slapi_get_supported_controls_copy()21.8. slapi_register_supported_control()22. Functions for Syntax Plug-ins22.1. slapi_call_syntax_assertion2keys_ava_sv()22.2. slapi_call_syntax_assertion2keys_sub_sv()22.3. slapi_call_syntax_values2keys_sv()23. Functions for Managing Memory23.1. slapi_ch_array_add()23.2. slapi_ch_array_free()23.3. slapi_ch_bvdup()23.4. slapi_ch_bvecdup()23.5. slapi_ch_calloc()23.6. slapi_ch_free()23.7. slapi_ch_free_string()23.8. slapi_ch_malloc()23.9. slapi_ch_realloc()23.10. slapi_ch_smprintf()23.11. slapi_ch_strdup()24. Functions for Managing Entries24.1. slapi_entry2str()24.2. slapi_entry2str_with_options()24.3. slapi_entry_add_rdn_values()24.4. slapi_entry_add_string()24.5. slapi_entry_add_value()24.6. slapi_entry_add_values_sv()24.7. slapi_entry_add_valueset()24.8. slapi_entry_alloc()24.9. slapi_entry_apply_mods()24.10. slapi_entry_attr_delete()24.11. slapi_entry_attr_find()24.12. slapi_entry_attr_get_bool()24.13. slapi_entry_attr_get_charptr()24.14. slapi_entry_attr_get_charray()24.15. slapi_entry_attr_get_int()24.16. slapi_entry_attr_get_long()24.17. slapi_entry_attr_get_uint()24.18. slapi_entry_attr_get_ulong()24.19. slapi_entry_attr_has_syntax_value()24.20. slapi_entry_attr_merge_sv()24.21. slapi_entry_attr_replace_sv()24.22. slapi_entry_attr_set_charptr()24.23. slapi_entry_attr_set_int()24.24. slapi_entry_attr_set_long()24.25. slapi_entry_attr_set_uint()24.26. slapi_entry_attr_set_ulong()24.27. slapi_entry_delete_string()24.28. slapi_entry_delete_values_sv()24.29. slapi_entry_dup()24.30. slapi_entry_first_attr()24.31. slapi_entry_free()24.32. slapi_entry_get_dn()24.33. slapi_entry_get_dn_const()24.34. slapi_entry_get_ndn()24.35. slapi_entry_get_sdn()24.36. slapi_entry_get_sdn_const()24.37. slapi_entry_get_uniqueid()24.38. slapi_entry_has_children()24.39. slapi_entry_init()24.40. slapi_entry_merge_values_sv()24.41. slapi_entry_next_attr()24.42. slapi_entry_rdn_values_present()24.43. slapi_entry_schema_check()24.44. slapi_entry_set_dn()24.45. slapi_entry_set_sdn()24.46. slapi_entry_set_uniqueid()24.47. slapi_entry_size()24.48. slapi_is_rootdse()24.49. slapi_str2entry()25. Functions Related to Entry Flags25.1. slapi_entry_clear_flag()25.2. slapi_entry_flag_is_set()25.3. slapi_entry_set_flag()26. Functions for Dealing with Filters26.1. slapi_filter_apply()26.2. slapi_filter_compare()26.3. slapi_filter_dup()26.4. slapi_filter_free()26.5. slapi_filter_get_attribute_type()26.6. slapi_filter_get_ava()26.7. slapi_filter_get_choice()26.8. slapi_filter_get_subfilt()26.9. slapi_filter_get_type()26.10. slapi_filter_join()26.11. slapi_filter_join_ex()26.12. slapi_filter_list_first()26.13. slapi_filter_list_next()26.14. slapi_filter_test()26.15. slapi_filter_test_ext()26.16. slapi_filter_test_simple()26.17. slapi_find_matching_paren()26.18. slapi_str2filter()26.19. slapi_vattr_filter_test()27. Functions Specific to Extended Operation27.1. slapi_get_supported_extended_ops_copy()28. Functions Specific to Bind Methods28.1. slapi_add_auth_response_control()28.2. slapi_get_supported_saslmechanisms_copy()28.3. slapi_register_supported_saslmechanism()29. Functions for Thread-Safe LDAP Connections29.1. slapi_ldap_init()29.2. slapi_ldap_unbind()30. Functions for Logging30.1. slapi_log_error()30.2. slapi_is_loglevel_set()31. Functions for Counters31.1. slapi_counter_add()31.2. slapi_counter_decrement()31.3. slapi_counter_destroy()31.4. slapi_counter_get_value()31.5. slapi_counter_increment()31.6. slapi_counter_init()31.7. slapi_counter_new()31.8. slapi_counter_set_value()31.9. slapi_counter_subtract()32. Functions for Handling Matching Rules32.1. slapi_berval_cmp()32.2. slapi_matchingrule_free()32.3. slapi_matchingrule_get()32.4. slapi_matchingrule_is_ordering()32.5. slapi_matchingrule_new()32.6. slapi_matchingrule_register()32.7. slapi_matchingrule_set()32.8. slapi_matchingrule_unregister()32.9. slapi_mr_filter_index()32.10. slapi_mr_indexer_create()33. Functions for LDAPMod Manipulation33.1. slapi_entry2mods()33.2. slapi_mod_add_value()33.3. slapi_mod_done()33.4. slapi_mod_dump()33.5. slapi_mod_free()33.6. slapi_mod_get_first_value()33.7. slapi_mod_get_ldapmod_byref()33.8. slapi_mod_get_ldapmod_passout()33.9. slapi_mod_get_next_value()33.10. slapi_mod_get_num_values()33.11. slapi_mod_get_operation()33.12. slapi_mod_get_type()33.13. slapi_mod_init()33.14. slapi_mod_init_byref()33.15. slapi_mod_init_byval()33.16. slapi_mod_init_passin()33.17. slapi_mod_init_valueset_byval()33.18. slapi_mod_isvalid()33.19. slapi_mod_new()33.20. slapi_mod_remove_value()33.21. slapi_mod_set_operation()33.22. slapi_mod_set_type()33.23. slapi_mods2entry()33.24. slapi_mods_add()33.25. slapi_mods_add_ldapmod()33.26. slapi_mods_add_mod_values()33.27. slapi_mods_add_smod()33.28. slapi_mods_add_modbvps()33.29. slapi_mods_add_string()33.30. slapi_mods_done()33.31. slapi_mods_dump()33.32. slapi_mods_free()33.33. slapi_mods_get_first_mod()33.34. slapi_mods_get_first_smod()33.35. slapi_mods_get_ldapmods_byref()33.36. slapi_mods_get_ldapmods_passout()33.37. slapi_mods_get_next_mod()33.38. slapi_mods_get_next_smod()33.39. slapi_mods_get_num_mods()33.40. slapi_mods_init()33.41. slapi_mods_init_byref()33.42. slapi_mods_init_passin()33.43. slapi_mods_insert_after()33.44. slapi_mods_insert_at()33.45. slapi_mods_insert_before()33.46. slapi_mods_insert_smod_at()33.47. slapi_mods_insert_smod_before()33.48. slapi_mods_iterator_backone()33.49. slapi_mods_new()33.50. slapi_mods_remove()34. Functions for Monitoring Operations34.1. slapi_op_abandoned()34.2. slapi_op_get_type()35. Functions for Managing Parameter Block35.1. slapi_pblock_destroy()35.2. slapi_pblock_get()35.3. slapi_pblock_init()35.4. slapi_pblock_new()35.5. slapi_pblock_set()36. Functions for Handling Passwords36.1. slapi_pw_find_sv()36.2. slapi_is_encoded()36.3. slapi_encode()36.4. slapi_add_pwd_control()36.5. slapi_pwpolicy_make_response_control()37. Functions for Managing RDNs37.1. slapi_rdn_add()37.2. slapi_rdn_compare()37.3. slapi_rdn_contains()37.4. slapi_rdn_contains_attr()37.5. slapi_rdn_done()37.6. slapi_rdn_free()37.7. slapi_rdn_get_first()37.8. slapi_rdn_get_index()37.9. slapi_rdn_get_index_attr()37.10. slapi_rdn_get_next()37.11. slapi_rdn_get_num_components()37.12. slapi_rdn_get_rdn()37.13. slapi_rdn_get_nrdn()37.14. slapi_rdn_init()37.15. slapi_rdn_init_dn()37.16. slapi_rdn_init_rdn()37.17. slapi_rdn_init_sdn()37.18. slapi_rdn_isempty()37.19. slapi_rdn_new()37.20. slapi_rdn_new_dn()37.21. slapi_rdn_new_rdn()37.22. slapi_rdn_new_sdn()37.23. slapi_rdn_remove()37.24. slapi_rdn_remove_attr()37.25. slapi_rdn_remove_index()37.26. slapi_rdn_set_dn()37.27. slapi_rdn_set_rdn()37.28. slapi_rdn_set_sdn()37.29. slapi_rdn2typeval()38. Functions for Managing Roles38.1. slapi_role_check()38.2. slapi_register_role_check()39. Functions for Managing DNs39.1. slapi_dn_isroot()39.2. slapi_dn_normalize_case()39.3. slapi_dn_normalize_to_end()39.4. slapi_moddn_get_newdn()39.5. slapi_sdn_add_rdn()39.6. slapi_sdn_compare()39.7. slapi_sdn_copy()39.8. slapi_sdn_done()39.9. slapi_sdn_dup()39.10. slapi_sdn_free()39.11. slapi_sdn_get_backend_parent()39.12. slapi_sdn_get_dn()39.13. slapi_sdn_get_ndn()39.14. slapi_sdn_get_ndn_len()39.15. slapi_sdn_get_parent()39.16. slapi_sdn_get_rdn()39.17. slapi_sdn_is_rdn_component()39.18. slapi_sdn_isempty()39.19. slapi_sdn_isgrandparent()39.20. slapi_sdn_isparent()39.21. slapi_sdn_issuffix()39.22. slapi_sdn_new()39.23. slapi_sdn_new_dn_byref()39.24. slapi_sdn_new_dn_byval()39.25. slapi_sdn_new_dn_passin()39.26. slapi_sdn_new_ndn_byref()39.27. slapi_sdn_new_ndn_byval()39.28. slapi_sdn_scope_test()39.29. slapi_sdn_set_dn_byref()39.30. slapi_sdn_set_dn_byval()39.31. slapi_sdn_set_dn_passin()39.32. slapi_sdn_set_ndn_byref()39.33. slapi_sdn_set_ndn_byval()39.34. slapi_sdn_set_parent()39.35. slapi_sdn_set_rdn()40. Functions for Sending Entries and Results to the Client40.1. slapi_send_ldap_referral()40.2. slapi_send_ldap_result()40.3. slapi_send_ldap_search_entry()41. Functions Related to UTF-841.1. slapi_has8thBit()41.2. slapi_utf8casecmp()41.3. slapi_UTF8CASECMP()41.4. slapi_utf8ncasecmp()41.5. slapi_UTF8NCASECMP()41.6. slapi_utf8isLower()41.7. slapi_UTF8ISLOWER()41.8. slapi_utf8isUpper()41.9. slapi_UTF8ISUPPER()41.10. slapi_utf8StrToLower()41.11. slapi_UTF8STRTOLOWER()41.12. slapi_utf8StrToUpper()41.13. slapi_UTF8STRTOUPPER()41.14. slapi_utf8ToLower()41.15. slapi_UTF8TOLOWER()41.16. slapi_utf8ToUpper()41.17. slapi_UTF8TOUPPER()42. Functions for Handling Values42.1. slapi_value_compare()42.2. slapi_value_dup()42.3. slapi_value_free()42.4. slapi_value_get_berval()42.5. slapi_value_get_flags()42.6. slapi_value_get_int()42.7. slapi_value_get_length()42.8. slapi_value_get_long()42.9. slapi_value_get_string()42.10. slapi_value_get_uint()42.11. slapi_value_get_ulong()42.12. slapi_value_init()42.13. slapi_value_init_berval()42.14. slapi_value_init_string()42.15. slapi_value_init_string_passin()42.16. slapi_value_new()42.17. slapi_value_new_berval()42.18. slapi_value_new_string()42.19. slapi_value_new_string_passin()42.20. slapi_value_new_value()42.21. slapi_value_set()42.22. slapi_value_set_berval()42.23. slapi_value_set_flags()42.24. slapi_value_set_int()42.25. slapi_value_set_string()42.26. slapi_value_set_string_passin()42.27. slapi_value_set_value()42.28. slapi_values_set_flags()43. Functions for Handling Valuesets43.1. slapi_valueset_add_value()43.2. slapi_valueset_add_value_ext()43.3. slapi_valueset_count()43.4. slapi_valueset_done()43.5. slapi_valueset_find()43.6. slapi_valueset_first_value()43.7. slapi_valueset_free()43.8. slapi_valueset_init()43.9. slapi_valueset_new()43.10. slapi_valueset_next_value()43.11. slapi_valueset_set_from_smod()43.12. slapi_valueset_set_valueset()44. Functions Specific to Virtual Attribute Service44.1. slapi_vattr_list_attrs()44.2. slapi_vattr_attrs_free()44.3. slapi_vattr_schema_check_type()44.4. slapi_vattr_value_compare()44.5. slapi_vattr_values_free()44.6. slapi_vattr_values_get()44.7. slapi_vattr_values_get_ex()44.8. slapi_vattr_values_type_thang_get()45. Functions for Managing Locks and Synchronization45.1. slapi_destroy_condvar()45.2. slapi_destroy_mutex()45.3. slapi_lock_mutex()45.4. slapi_new_condvar()45.5. slapi_new_mutex()45.6. slapi_notify_condvar()45.7. slapi_unlock_mutex()45.8. slapi_wait_condvar()46. Functions for Managing Computed Attributes46.1. slapi_compute_add_evaluator()46.2. slapi_compute_add_search_rewriter()46.3. compute_rewrite_search_filter()47. Functions for Manipulating Bits47.1. slapi_isbitset_int()47.2. slapi_isbitset_uchar()47.3. slapi_setbit_int()47.4. slapi_setbit_uchar()47.5. slapi_unsetbit_int()47.6. slapi_unsetbit_uchar()48. Functions for Registering and Unregistering Object Extensions48.1. slapi_get_object_extension()48.2. slapi_register_object_extension()48.3. slapi_set_object_extension()48.4. slapi_unregister_object_extension()49. Functions Related to Data Interoperability49.1. slapi_op_reserved()49.2. slapi_operation_set_flag()49.3. slapi_operation_clear_flag()49.4. slapi_operation_is_flag_set()50. Functions for Registering Additional Plug-ins50.1. slapi_register_plugin()51. Functions for Server Tasks51.1. slapi_destroy_task()51.2. slapi_plugin_new_task()51.3. slapi_task_begin()51.4. slapi_task_cancel()51.5. slapi_task_dec_refcount()51.6. slapi_task_finish()51.7. slapi_task_get_data()51.8. slapi_task_get_refcount()51.9. slapi_task_get_state()51.10. slapi_task_inc_progress()51.11. slapi_task_inc_refcount()51.12. slapi_task_log_notice()51.13. slapi_task_log_status()51.14. slapi_plugin_task_register_handler()51.15. slapi_plugin_task_unregister_handler()51.16. slapi_task_set_data()51.17. slapi_task_set_cancel_fn()51.18. slapi_task_set_destructor_fn()51.19. slapi_task_status_changed()V. Parameter Block Reference52. Parameters for Registering Plug-in Functions52.1. Pre-Operation/Data Validation Plug-ins52.2. Post-Operation/Data Notification Plug-ins52.3. Matching Rule Plug-ins52.4. Entry Plug-ins53. Parameters Accessible to All Plug-ins53.1. Information about the Database53.2. Information about the Connection53.3. Information about the Operation53.4. Information about Extended Operations53.5. Information about the Transaction53.6. Information about Access Control Lists53.7. Notes in the Access Log53.8. Information about the Plug-in53.8.1. Types of Plug-ins53.8.2. Version Information53.9. Information about Command-Line Arguments53.10. Information about Attributes53.10.1. Attribute Names53.10.2. Attribute Flags53.10.3. Attribute Comparisons53.11. Information about Targets54. Parameters for the Bind Function55. Parameters for the Search Function55.1. Parameters Passed to the Search Function55.2. Parameters for Executing the Search55.3. Parameters for the Search Results56. Parameters that Convert Strings to Entries57. Parameters for the Add Function58. Parameters for the Compare Function59. Parameters for the Delete Function60. Parameters for the Modify Function61. Parameters for the Modify RDN Function62. Parameters for the Abandon Function63. Parameters for the Matching Rule Function63.1. Query Operators in Extensible Match Filters64. Parameters for LDBM Backend Pre- and Post-Operation Functions64.1. Pre-Operation Plug-ins64.2. Post-Operation Plug-ins65. Parameters for LDBM Back End Transaction Pre- and Post-Operation Functions65.1. Pre-Operation Plug-ins65.2. Post-Operation Plug-ins66. Parameters for the Database66.1. Information about the Database66.2. Information about Operations66.3. Information about Backend State Change67. Parameters for LDAP Functions67.1. Parameters for LDAP Operations67.2. Parameters for LDAP Control67.3. Parameters for Generating LDIF Strings68. Parameters for Error Logging69. Parameters for Filters69.1. Parameters for Comparison Filters69.2. Parameters for Filter Operations70. Parameters for Password Storage70.1. Password Storage Plug-ins70.2. Parameters for Password Storage71. Parameters for Resource Limits71.1. Parameter for Binder-Based Resource Limits71.2. Status Codes for Resource Limits72. Parameters for the Virtual Attribute ServiceA. Revision HistoryLegal Notice Chapter 71. Parameters for Resource Limits The following parameters are used to provide information about resource limits: Section 71.1, “Parameter for Binder-Based Resource Limits” Section 71.2, “Status Codes for Resource Limits” 71.1. Parameter for Binder-Based Resource Limits The following parameter is a valid value for the slapi_reslimit_register() function. Parameter ID Data Type Description SLAPI_RESLIMIT_TYPE_INT int Valid values for the type parameter for slapi_reslimit_register(). 70.2. Parameters for Password Storage 71.2. Status Codes for Resource Limits
Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.