/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2008 The OpenLDAP Foundation.
+ * Copyright 2001-2014 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
slapi_op_search_callback( Operation *op, SlapReply *rs, int prc )
{
Slapi_PBlock *pb = SLAPI_OPERATION_PBLOCK( op );
+ Filter *f = op->ors_filter;
/* check preoperation result code */
if ( prc < 0 ) {
* The plugin can set the SLAPI_SEARCH_FILTER.
* SLAPI_SEARCH_STRFILER is not normative.
*/
- op->o_tmpfree( op->ors_filterstr.bv_val, op->o_tmpmemctx );
- filter2bv_x( op, op->ors_filter, &op->ors_filterstr );
+ if (f != op->ors_filter) {
+ op->o_tmpfree( op->ors_filterstr.bv_val, op->o_tmpmemctx );
+ filter2bv_x( op, op->ors_filter, &op->ors_filterstr );
+ }
}
return LDAP_SUCCESS;
n_slapi_ctrls = slapi_int_count_controls( slapi_ctrls );
n_rs_ctrls = slapi_int_count_controls( rs->sr_ctrls );
- slapi_pblock_set( pb, SLAPI_X_OLD_RESCONTROLS, (void *)rs->sr_ctrls );
-
if ( n_slapi_ctrls == 0 )
return LDAP_SUCCESS; /* no SLAPI controls */
+ slapi_pblock_set( pb, SLAPI_X_OLD_RESCONTROLS, (void *)rs->sr_ctrls );
+
ctrls = (LDAPControl **) op->o_tmpalloc(
( n_slapi_ctrls + n_rs_ctrls + 1 ) * sizeof(LDAPControl *),
op->o_tmpmemctx );
return overlay_is_inst( be, SLAPI_OVERLAY_NAME );
}
-int slapi_over_config( BackendDB *be )
+int slapi_over_config( BackendDB *be, ConfigReply *cr )
{
if ( slapi_over_initialized == 0 ) {
int rc;
slapi_over_initialized = 1;
}
- return overlay_config( be, SLAPI_OVERLAY_NAME, -1, NULL );
+ return overlay_config( be, SLAPI_OVERLAY_NAME, -1, NULL, cr );
}
#endif /* LDAP_SLAPI */