]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/overlays/deref.c
ITS#7436 slapo-deref: call overlay_register_control in db_open
[openldap] / servers / slapd / overlays / deref.c
index 2f4f564d236212acb06c9badfcfe6a0f89604832..ddc45748bc4ecea8df62b89a91aa61654c76d242 100644 (file)
@@ -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 );