/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2014 The OpenLDAP Foundation.
+ * Copyright 1998-2015 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
#define LDAP_COMP_MATCH
#define LDAP_SYNC_TIMESTAMP
#define SLAP_CONTROL_X_WHATFAILED
+#define SLAP_CONTROL_X_LAZY_COMMIT
#define SLAP_CONFIG_DELETE
#define SLAP_AUXPROP_DONTUSECOPY
#ifndef SLAP_SCHEMA_EXPOSE
typedef int (BI_acl_attribute) LDAP_P(( Operation *op, Entry *target,
struct berval *entry_ndn, AttributeDescription *entry_at,
BerVarray *vals, slap_access_t access ));
+#ifdef LDAP_X_TXN
+struct OpExtra;
+typedef int (BI_op_txn) LDAP_P(( Operation *op, int txnop, struct OpExtra **ptr ));
+#define SLAP_TXN_BEGIN 1
+#define SLAP_TXN_COMMIT 2
+#define SLAP_TXN_ABORT 3
+#endif
typedef int (BI_conn_func) LDAP_P(( BackendDB *bd, Connection *c ));
typedef BI_conn_func BI_connection_init;
BI_operational *bi_operational;
BI_chk_referrals *bi_chk_referrals;
BI_chk_controls *bi_chk_controls;
+#ifdef LDAP_X_TXN
+ BI_op_txn *bi_op_txn;
+#endif
BI_entry_get_rw *bi_entry_get_rw;
BI_entry_release_rw *bi_entry_release_rw;
typedef int (slap_response)( Operation *, SlapReply * );
+struct slap_callback;
+typedef void (slap_writewait)( Operation *, struct slap_callback * );
+
typedef struct slap_callback {
struct slap_callback *sc_next;
slap_response *sc_response;
slap_response *sc_cleanup;
+ slap_writewait *sc_writewait;
void *sc_private;
} slap_callback;
op_aux_operational,
op_aux_chk_referrals,
op_aux_chk_controls,
+#ifdef LDAP_X_TXN
+ op_txn,
+#endif
op_last
} slap_operation_t;
#ifdef SLAP_CONTROL_X_WHATFAILED
int sc_whatFailed;
#endif
+#ifdef LDAP_CONTROL_X_LAZY_COMMIT
+ int sc_lazyCommit;
+#endif
};
/*
#define get_whatFailed(op) _SCM((op)->o_whatFailed)
#endif
+#ifdef SLAP_CONTROL_X_LAZY_COMMIT
+#define o_lazyCommit o_ctrlflag[slap_cids.sc_lazyCommit]
+#define get_lazyCommit(op) _SCM((op)->o_lazyCommit)
+#endif
+
#define o_sync o_ctrlflag[slap_cids.sc_LDAPsync]
AuthorizationInformation o_authz;