return SLAPD_DISCONNECT;
}
- op->ora_e = (Entry *) ch_calloc( 1, sizeof(Entry) );
+ op->ora_e = entry_alloc();
rs->sr_err = dnPrettyNormal( NULL, &dn, &op->o_req_dn, &op->o_req_ndn,
op->o_tmpmemctx );
op->o_bd = frontendDB;
rc = frontendDB->be_add( op, rs );
+
+#ifdef LDAP_X_TXN
+ if ( rc == LDAP_X_TXN_SPECIFY_OKAY ) {
+ /* skip cleanup */
+ return rc;
+ } else
+#endif
if ( rc == 0 ) {
if ( op->ora_e != NULL && op->o_private != NULL ) {
BackendDB *bd = op->o_bd;
if ( op->o_bd->be_add ) {
/* do the update here */
int repl_user = be_isupdate( op );
- if ( !SLAP_SINGLE_SHADOW(op->o_bd) || repl_user )
- {
+ if ( !SLAP_SINGLE_SHADOW(op->o_bd) || repl_user ) {
int update = !BER_BVISEMPTY( &op->o_bd->be_update_ndn );
slap_callback cb = { NULL, slap_replog_cb, NULL, NULL };
}
}
- attr = ch_calloc( 1, sizeof(Attribute) );
-
- /* move ad to attr structure */
- attr->a_desc = mods->sml_desc;
+ attr = attr_alloc( mods->sml_desc );
/* move values to attr structure */
/* should check for duplicates */
if ( SLAP_LASTMOD( op->o_bd ) ) {
char *ptr;
- timestamp.bv_val = timebuf;
int gotcsn = 0;
+ timestamp.bv_val = timebuf;
a = attr_find( op->ora_e->e_attrs, slap_schema.si_ad_entryCSN );
if ( a ) {
gotcsn = 1;