From: Kurt Zeilenga Date: Tue, 25 Dec 2001 18:20:35 +0000 (+0000) Subject: FIx up replog calls, add replog call to bdb passwd X-Git-Tag: LDBM_PRE_GIANT_RWLOCK~521 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=7431cb9eeeb979e484280ec43180fcfeb9cce670;p=openldap FIx up replog calls, add replog call to bdb passwd --- diff --git a/servers/slapd/back-bdb/passwd.c b/servers/slapd/back-bdb/passwd.c index 5959f33618..450a7d3273 100644 --- a/servers/slapd/back-bdb/passwd.c +++ b/servers/slapd/back-bdb/passwd.c @@ -184,27 +184,30 @@ retry: /* transaction retry */ goto done; } - } + /* change the entry itself */ + rc = bdb_id2entry_update( be, ltid, e ); + if( rc != 0 ) { + switch(rc) { + case DB_LOCK_DEADLOCK: + case DB_LOCK_NOTGRANTED: + bdb_entry_return( be, e ); + e = NULL; + goto retry; + } + *text = "entry update failed"; + rc = LDAP_OTHER; + } - /* change the entry itself */ - rc = bdb_id2entry_update( be, ltid, e ); - if( rc != 0 ) { - switch(rc) { - case DB_LOCK_DEADLOCK: - case DB_LOCK_NOTGRANTED: - bdb_entry_return( be, e ); - e = NULL; - goto retry; + if( bdb->bi_txn && rc == 0 ) { + rc = txn_commit( ltid, 0 ); + ltid = NULL; } - *text = "entry update failed"; - rc = LDAP_OTHER; - } + op->o_private = NULL; - if( bdb->bi_txn && rc == 0 ) { - rc = txn_commit( ltid, 0 ); - ltid = NULL; + if( rc == LDAP_SUCCESS ) { + replog( be, op, &e->e_name, &e->e_nname, &ml ); + } } - op->o_private = NULL; done: if( e != NULL ) { diff --git a/servers/slapd/back-ldbm/passwd.c b/servers/slapd/back-ldbm/passwd.c index 2dcbabad24..a45c95a57a 100644 --- a/servers/slapd/back-ldbm/passwd.c +++ b/servers/slapd/back-ldbm/passwd.c @@ -162,9 +162,11 @@ ldbm_back_exop_passwd( rc = LDAP_OTHER; } - replog( be, op, e->e_dn, e->e_ndn, &ml ); + if( rc == LDAP_SUCCESS ) { + replog( be, op, &e->e_name, &e->e_nname, &ml ); + } } - + done: if( e != NULL ) { cache_return_entry_w( &li->li_cache, e ); diff --git a/servers/slapd/tools/mimic.c b/servers/slapd/tools/mimic.c index 50e8325af4..528504de2b 100644 --- a/servers/slapd/tools/mimic.c +++ b/servers/slapd/tools/mimic.c @@ -186,7 +186,8 @@ const char * connection_state2str( int state ) return NULL; } -void replog( Backend *be, Operation *op, char *dn, char *ndn, void *change) +void replog( Backend *be, Operation *op, + struct berval *dn, struct berval *ndn, void *change) { assert(0); }