diff --git a/servers/slapd/overlays/deref.c b/servers/slapd/overlays/deref.c index 2f4f564d236212acb06c9badfcfe6a0f89604832..ddc45748bc4ecea8df62b89a91aa61654c76d242 100644 --- a/servers/slapd/overlays/deref.c +++ b/servers/slapd/overlays/deref.c @@ -516,6 +516,21 @@ deref_op_search( Operation *op, SlapReply *rs ) return SLAP_CB_CONTINUE; } +static int +deref_db_open( BackendDB *be, ConfigReply *cr) +{ + return overlay_register_control( be, LDAP_CONTROL_X_DEREF ); +} + +#ifdef SLAP_CONFIG_DELETE +static int +deref_db_close( BackendDB *be, ConfigReply *cr) +{ + overlay_unregister_control( be, LDAP_CONTROL_X_DEREF ); + return 0; +} +#endif /* SLAP_CONFIG_DELETE */ + int deref_initialize(void) { @@ -532,6 +547,10 @@ deref_initialize(void) } deref.on_bi.bi_type = "deref"; + deref.on_bi.bi_db_open = deref_db_open; +#ifdef SLAP_CONFIG_DELETE + deref.on_bi.bi_db_close = deref_db_close; +#endif /* SLAP_CONFIG_DELETE */ deref.on_bi.bi_op_search = deref_op_search; return overlay_register( &deref );