lc = ldap_back_getconn( op, rs, LDAP_BACK_SENDERR );
if ( !lc || !ldap_back_dobind( lc, op, rs, LDAP_BACK_SENDERR ) ) {
+ lc = NULL;
goto cleanup;
}
isupdate = be_shadow_update( op );
for ( i = 0, a = op->oq_add.rs_e->e_attrs; a; a = a->a_next ) {
- if ( !isupdate && a->a_desc->ad_type->sat_no_user_mod ) {
+ if ( !isupdate && !get_manageDIT( op ) && a->a_desc->ad_type->sat_no_user_mod )
+ {
continue;
}
ch_free( attrs );
}
+ if ( lc ) {
+ ldap_back_release_conn( op, rs, lc );
+ }
+
Debug( LDAP_DEBUG_ARGS, "<== ldap_back_add(\"%s\"): %d\n",
op->o_req_dn.bv_val, rs->sr_err, 0 );