static ObjectClass *oc_group;
static slap_overinst memberof;
+static slap_overinst *oi_refint;
typedef struct memberof_t {
struct berval mo_dn;
LDAP_SLIST_FOREACH( oex, &op->o_extra, oe_next ) {
if ( oex->oe_key == (void *)&memberof )
return SLAP_CB_CONTINUE;
+ if ( oi_refint && oex->oe_key == oi_refint )
+ return SLAP_CB_CONTINUE;
}
if ( MEMBEROF_REVERSE( mo ) ) {
if ( SLAP_ISGLOBALOVERLAY( c->be ) ) {
snprintf( c->cr_msg, sizeof( c->cr_msg ),
"addcheck functionality not supported "
- "when memberof is a global overlay",
- c->argv[ 1 ] );
+ "when memberof is a global overlay" );
Debug( LDAP_DEBUG_ANY, "%s: %s.\n",
c->log, c->cr_msg );
return 1;
memberof_make_member_filter( mo );
}
+ oi_refint = overlay_find( "refint" );
+
return 0;
}
unsigned long opid;
int rc;
int cache;
+ OpExtra oex;
op->o_callback->sc_response = refint_search_cb;
op->o_req_dn = op->o_bd->be_suffix[ 0 ];
opid = op->o_opid;
op2 = *op;
+
+ /* mark this mod as one of ours */
+ oex.oe_key = (void *)&refint;
+ LDAP_SLIST_INSERT_HEAD( &op2.o_extra, &oex, oe_next );
+
for ( dp = rq->attrs; dp; dp = dp->next ) {
SlapReply rs2 = {REP_RESULT};
refint_attrs *ra;