case SLAPI_DB2LDIF_PRINTKEY:
case SLAPI_LDIF2DB_REMOVEDUPVALS:
case SLAPI_MANAGEDSAIT:
+ case SLAPI_X_MANAGEDIT:
+ case SLAPI_X_OPERATION_NO_SCHEMA_CHECK:
case SLAPI_IS_REPLICATED_OPERATION:
case SLAPI_X_CONN_IS_UDP:
case SLAPI_X_CONN_SSF:
case SLAPI_OPERATION_ID:
case SLAPI_OPINITIATED_TIME:
case SLAPI_ABANDON_MSGID:
+ case SLAPI_X_OPERATION_DELETE_GLUE_PARENT:
return PBLOCK_CLASS_LONG_INTEGER;
break;
PBLOCK_ASSERT_OP( pb, 0 );
*((ber_tag_t *)value) = pb->pb_op->o_tag;
break;
+ case SLAPI_X_OPERATION_DELETE_GLUE_PARENT:
+ PBLOCK_ASSERT_OP( pb, 0 );
+ *((ber_tag_t *)value) = pb->pb_op->o_delete_glue_parent;
+ break;
+ case SLAPI_X_OPERATION_NO_SCHEMA_CHECK:
+ PBLOCK_ASSERT_OP( pb, 0 );
+ *((int *)value) = get_no_schema_check( pb->pb_op );
+ break;
case SLAPI_REQCONTROLS:
PBLOCK_ASSERT_OP( pb, 0 );
*((LDAPControl ***)value) = pb->pb_op->o_ctrls;
break;
case SLAPI_REQUESTOR_DN:
PBLOCK_ASSERT_OP( pb, 0 );
- *((char **)value) = pb->pb_op->o_ndn.bv_val;
+ *((char **)value) = pb->pb_op->o_dn.bv_val;
break;
case SLAPI_MANAGEDSAIT:
PBLOCK_ASSERT_OP( pb, 0 );
*((int *)value) = get_manageDSAit( pb->pb_op );
break;
+ case SLAPI_X_MANAGEDIT:
+ PBLOCK_ASSERT_OP( pb, 0 );
+ *((int *)value) = get_manageDIT( pb->pb_op );
+ break;
case SLAPI_BACKEND:
PBLOCK_ASSERT_OP( pb, 0 );
*((BackendDB **)value) = pb->pb_op->o_bd;
break;
case SLAPI_TARGET_DN:
PBLOCK_ASSERT_OP( pb, 0 );
- *((char **)value) = pb->pb_op->o_req_ndn.bv_val;
+ *((char **)value) = pb->pb_op->o_req_dn.bv_val;
break;
case SLAPI_REQUESTOR_ISROOT:
*((int *)value) = pblock_be_call( pb, be_isroot );
rc = PBLOCK_ERROR;
break;
}
- mods = slapi_int_modifications2ldapmods( &pb->pb_op->orm_modlist, NULL );
+ mods = slapi_int_modifications2ldapmods( &pb->pb_op->orm_modlist );
pblock_set_default( pb, param, (void *)mods );
}
*((LDAPMod ***)value) = mods;
attrs = anlist2charray_x( pb->pb_op->ors_attrs, 0, pb->pb_op->o_tmpmemctx );
pblock_set_default( pb, param, (void *)attrs );
}
- *((char ***)attrs) = attrs;
+ *((char ***)value) = attrs;
+ break;
}
case SLAPI_SEARCH_ATTRSONLY:
PBLOCK_ASSERT_OP( pb, 0 );
controls = (LDAPControl **)slapi_ch_realloc( (char *)controls,
( i + 2 ) * sizeof(LDAPControl *));
- controls[i] = control;
+ controls[i++] = slapi_dup_control( control );
+ controls[i] = NULL;
return pblock_set_default( pb, SLAPI_RESCONTROLS, (void *)controls );
}
}
bv.bv_val = (char *)value;
- bv.bv_len = strlen( bv.bv_val );
+ bv.bv_len = ( value != NULL ) ? strlen( bv.bv_val ) : 0;
return dnPrettyNormal( NULL, &bv, dn, ndn, memctx );
}
PBLOCK_ASSERT_OP( pb, 0 );
pb->pb_op->o_tag = *((ber_tag_t *)value);
break;
+ case SLAPI_X_OPERATION_DELETE_GLUE_PARENT:
+ PBLOCK_ASSERT_OP( pb, 0 );
+ pb->pb_op->o_delete_glue_parent = *((int *)value);
+ break;
+ case SLAPI_X_OPERATION_NO_SCHEMA_CHECK:
+ PBLOCK_ASSERT_OP( pb, 0 );
+ pb->pb_op->o_no_schema_check = *((int *)value);
+ break;
case SLAPI_REQCONTROLS:
PBLOCK_ASSERT_OP( pb, 0 );
pb->pb_op->o_ctrls = (LDAPControl **)value;
LDAPControl **ctrls = NULL;
pblock_get_default( pb, param, (void **)&ctrls );
- if ( ctrls == NULL ) {
+ if ( ctrls != NULL ) {
/* free old ones first */
ldap_controls_free( ctrls );
}
PBLOCK_ASSERT_OP( pb, 0 );
pb->pb_op->o_managedsait = *((int *)value);
break;
+ case SLAPI_X_MANAGEDIT:
+ PBLOCK_ASSERT_OP( pb, 0 );
+ pb->pb_op->o_managedit = *((int *)value);
+ break;
case SLAPI_BACKEND:
PBLOCK_ASSERT_OP( pb, 0 );
pb->pb_op->o_bd = (BackendDB *)value;
break;
case SLAPI_ADD_ENTRY:
PBLOCK_ASSERT_OP( pb, 0 );
- if ( pb->pb_op->o_tag == LDAP_REQ_ADD ) {
+ if ( pb->pb_op->o_tag == LDAP_REQ_ADD )
pb->pb_op->ora_e = (Slapi_Entry *)value;
- } else {
+ else
rc = PBLOCK_ERROR;
- }
break;
case SLAPI_MODIFY_MODS: {
Modifications **mlp;
+ Modifications *newmods;
PBLOCK_ASSERT_OP( pb, 0 );
rc = pblock_set_default( pb, param, value );
break;
}
- if ( *mlp != NULL ) {
- slapi_int_mods_free( *mlp );
- *mlp = NULL;
+ newmods = slapi_int_ldapmods2modifications( (LDAPMod **)value );
+ if ( newmods != NULL ) {
+ slap_mods_free( *mlp, 1 );
+ *mlp = newmods;
}
- *mlp = slapi_int_ldapmods2modifications( (LDAPMod **)value, NULL );
break;
}
case SLAPI_MODRDN_NEWRDN:
slapi_int_connection_done_pb( pb );
} else {
pblock_get_default( pb, SLAPI_MODIFY_MODS, (void **)&mods );
- slapi_int_free_ldapmods( mods );
+ ldap_mods_free( mods, 1 );
pblock_get_default( pb, SLAPI_SEARCH_ATTRS, (void **)&attrs );
if ( attrs != NULL )