]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldap/add.c
slightly rework user/operational attributes handling (including fixing a bug in the...
[openldap] / servers / slapd / back-ldap / add.c
index 803bc4aef9819a3d260dbc8ebdad7f34cc56e187..699503aca8e25093a511afa326f6c733a8de9b66 100644 (file)
@@ -46,8 +46,8 @@ ldap_back_add(
        ber_int_t msgid;
        dncookie dc;
        int isupdate;
-#ifdef LDAP_BACK_PROXY_AUTHZ 
        LDAPControl **ctrls = NULL;
+#ifdef LDAP_BACK_PROXY_AUTHZ 
        int rc = LDAP_SUCCESS;
 #endif /* LDAP_BACK_PROXY_AUTHZ */
 
@@ -90,7 +90,7 @@ ldap_back_add(
        dc.ctx = "addAttrDN";
 #endif
 
-       isupdate = be_isupdate( op ) || syncrepl_isupdate( op );
+       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  ) {
                        continue;
@@ -128,6 +128,7 @@ ldap_back_add(
        }
        attrs[i] = NULL;
 
+       ctrls = op->o_ctrls;
 #ifdef LDAP_BACK_PROXY_AUTHZ
        rc = ldap_back_proxy_authz_ctrl( lc, op, rs, &ctrls );
        if ( rc != LDAP_SUCCESS ) {
@@ -136,12 +137,7 @@ ldap_back_add(
 #endif /* LDAP_BACK_PROXY_AUTHZ */
 
        rs->sr_err = ldap_add_ext(lc->ld, mdn.bv_val, attrs,
-#ifdef LDAP_BACK_PROXY_AUTHZ
-                       ctrls,
-#else /* ! LDAP_BACK_PROXY_AUTHZ */
-                       op->o_ctrls,
-#endif /* ! LDAP_BACK_PROXY_AUTHZ */
-                       NULL, &msgid);
+                       ctrls, NULL, &msgid);
 
 #ifdef LDAP_BACK_PROXY_AUTHZ
 cleanup: