static int sssvlv_db_init( BackendDB *be, ConfigReply *cr) { slap_overinst *on = (slap_overinst *)be->bd_info; sssvlv_info *si; if ( ov_count == 0 ) { int rc; rc = register_supported_control2( LDAP_CONTROL_SORTREQUEST, SLAP_CTRL_SEARCH, NULL, sss_parseCtrl, 1 /* replace */, &sss_cid ); if ( rc != LDAP_SUCCESS ) { Debug( LDAP_DEBUG_ANY, "Failed to register Sort Request control '%s' (%d)\n", LDAP_CONTROL_SORTREQUEST, rc ); return rc; } rc = register_supported_control2( LDAP_CONTROL_VLVREQUEST, SLAP_CTRL_SEARCH, NULL, vlv_parseCtrl, 1 /* replace */, &vlv_cid ); if ( rc != LDAP_SUCCESS ) { Debug( LDAP_DEBUG_ANY, "Failed to register VLV Request control '%s' (%d)\n", LDAP_CONTROL_VLVREQUEST, rc ); #ifdef SLAP_CONFIG_DELETE overlay_unregister_control( be, LDAP_CONTROL_SORTREQUEST ); unregister_supported_control( LDAP_CONTROL_SORTREQUEST ); #endif /* SLAP_CONFIG_DELETE */ return rc; } } si = (sssvlv_info *)ch_malloc(sizeof(sssvlv_info)); on->on_bi.bi_private = si; si->svi_max = 0; si->svi_num = 0; si->svi_max_keys = SSSVLV_DEFAULT_MAX_KEYS; si->svi_max_percon = SSSVLV_DEFAULT_MAX_REQUEST_PER_CONN; ov_count++; return LDAP_SUCCESS; }
static int deref_db_init( BackendDB *be, ConfigReply *cr) { if ( ov_count == 0 ) { int rc; rc = register_supported_control2( LDAP_CONTROL_X_DEREF, SLAP_CTRL_SEARCH, NULL, deref_parseCtrl, 1, /* replace */ &deref_cid ); if ( rc != LDAP_SUCCESS ) { Debug( LDAP_DEBUG_ANY, "deref_init: Failed to register control (%d)\n", rc ); return rc; } } ov_count++; return LDAP_SUCCESS; }