mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-24 16:49:39 -05:00
new call unregister_supported_control(), will be
needed for cn=config delete support
This commit is contained in:
parent
14fcbf4cfc
commit
b435efa694
2 changed files with 36 additions and 0 deletions
|
|
@ -344,6 +344,38 @@ register_supported_control2(const char *controloid,
|
|||
return LDAP_SUCCESS;
|
||||
}
|
||||
|
||||
#ifdef SLAP_CONFIG_DELETE
|
||||
int
|
||||
unregister_supported_control( const char *controloid )
|
||||
{
|
||||
struct slap_control *sc;
|
||||
int i;
|
||||
|
||||
if ( controloid == NULL || (sc = find_ctrl( controloid )) == NULL ){
|
||||
return -1;
|
||||
}
|
||||
|
||||
for ( i = 0; slap_known_controls[ i ]; i++ ) {
|
||||
if ( strcmp( controloid, slap_known_controls[ i ] ) == 0 ) {
|
||||
while ( slap_known_controls[i] ) {
|
||||
slap_known_controls[i++] = slap_known_controls[i];
|
||||
}
|
||||
num_known_controls--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
LDAP_SLIST_REMOVE(&controls_list, sc, slap_control, sc_next);
|
||||
ch_free( sc->sc_oid );
|
||||
if ( sc->sc_extendedopsbv != NULL ) {
|
||||
ber_bvarray_free( sc->sc_extendedopsbv );
|
||||
}
|
||||
ch_free( sc );
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* SLAP_CONFIG_DELETE */
|
||||
|
||||
/*
|
||||
* One-time initialization of internal controls.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -647,6 +647,10 @@ LDAP_SLAPD_F (int) register_supported_control2 LDAP_P((
|
|||
int *controlcid ));
|
||||
#define register_supported_control(oid, mask, exops, fn, cid) \
|
||||
register_supported_control2((oid), (mask), (exops), (fn), 0, (cid))
|
||||
#ifdef SLAP_CONFIG_DELETE
|
||||
LDAP_SLAPD_F (int) unregister_supported_control LDAP_P((
|
||||
const char* controloid ));
|
||||
#endif /* SLAP_CONFIG_DELETE */
|
||||
LDAP_SLAPD_F (int) slap_controls_init LDAP_P ((void));
|
||||
LDAP_SLAPD_F (void) controls_destroy LDAP_P ((void));
|
||||
LDAP_SLAPD_F (int) controls_root_dse_info LDAP_P ((Entry *e));
|
||||
|
|
|
|||
Loading…
Reference in a new issue