]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldbm/modify.c
Import nextid cleanup from devel.
[openldap] / servers / slapd / back-ldbm / modify.c
index 3c16b925d4d78ecf144ce90722ab5a5aca3e0e20..96e3f9422aa910fc3a1ac41de69dd7705f36f38e 100644 (file)
 #include "back-ldbm.h"
 #include "proto-back-ldbm.h"
 
-extern int             global_schemacheck;
-extern Attribute       *attr_find();
-
-static int     add_values();
-static int     delete_values();
-static int     replace_values();
+static int     add_values(Entry *e, LDAPMod *mod, char *dn);
+static int     delete_values(Entry *e, LDAPMod *mod, char *dn);
+static int     replace_values(Entry *e, LDAPMod *mod, char *dn);
 
 int
 ldbm_back_modify(
@@ -28,13 +25,14 @@ ldbm_back_modify(
 )
 {
        struct ldbminfo *li = (struct ldbminfo *) be->be_private;
-       char            *matched = NULL;
+       char            *matched;
        Entry           *e;
        int             i, err;
        LDAPMod         *mod;
 
        Debug(LDAP_DEBUG_ARGS, "ldbm_back_modify:\n", 0, 0, 0);
 
+       /* acquire and lock entry */
        if ( (e = dn2entry_w( be, dn, &matched )) == NULL ) {
                send_ldap_result( conn, op, LDAP_NO_SUCH_OBJECT, matched,
                    NULL );
@@ -44,10 +42,6 @@ ldbm_back_modify(
                return( -1 );
        }
 
-       /* check for deleted */
-
-       /* lock entry */
-
        if ( (err = acl_check_mods( be, conn, op, e, mods )) != LDAP_SUCCESS ) {
                send_ldap_result( conn, op, err, NULL, NULL );
                goto error_return;
@@ -56,15 +50,15 @@ ldbm_back_modify(
        for ( mod = mods; mod != NULL; mod = mod->mod_next ) {
                switch ( mod->mod_op & ~LDAP_MOD_BVALUES ) {
                case LDAP_MOD_ADD:
-                       err = add_values( e, mod, op->o_dn );
+                       err = add_values( e, mod, op->o_ndn );
                        break;
 
                case LDAP_MOD_DELETE:
-                       err = delete_values( e, mod, op->o_dn );
+                       err = delete_values( e, mod, op->o_ndn );
                        break;
 
                case LDAP_MOD_REPLACE:
-                       err = replace_values( e, mod, op->o_dn );
+                       err = replace_values( e, mod, op->o_ndn );
                        break;
                }