X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fslap.h;h=1790545c16221e121cde8bef926e1c25208b1067;hb=cdcf70eeb6b863d4d135ccb010da7f69e52b6723;hp=09c1854f88ab535d30c35f4942f114d3aed249ec;hpb=beca9bbb153ae03fb34acfdb57c53144ac2166fc;p=openldap diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h index 09c1854f88..1790545c16 100644 --- a/servers/slapd/slap.h +++ b/servers/slapd/slap.h @@ -2,7 +2,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2013 The OpenLDAP Foundation. + * Copyright 1998-2014 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -58,7 +58,6 @@ LDAP_BEGIN_DECL -#ifdef LDAP_DEVEL #define LDAP_COLLECTIVE_ATTRIBUTES #define LDAP_COMP_MATCH #define LDAP_SYNC_TIMESTAMP @@ -68,7 +67,6 @@ LDAP_BEGIN_DECL #ifndef SLAP_SCHEMA_EXPOSE #define SLAP_SCHEMA_EXPOSE #endif -#endif #define LDAP_DYNAMIC_OBJECTS #define SLAP_CONTROL_X_TREE_DELETE LDAP_CONTROL_X_TREE_DELETE @@ -1825,6 +1823,7 @@ struct BackendDB { #define be_sync bd_info->bi_tool_sync #define be_dn2id_get bd_info->bi_tool_dn2id_get #define be_entry_modify bd_info->bi_tool_entry_modify +#define be_entry_delete bd_info->bi_tool_entry_delete #endif /* supported controls */ @@ -2184,6 +2183,13 @@ typedef int (BI_acl_group) LDAP_P(( Operation *op, Entry *target, 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; @@ -2202,6 +2208,8 @@ typedef int (BI_tool_sync) LDAP_P(( BackendDB *be )); typedef ID (BI_tool_dn2id_get) LDAP_P(( BackendDB *be, struct berval *dn )); typedef ID (BI_tool_entry_modify) LDAP_P(( BackendDB *be, Entry *e, struct berval *text )); +typedef int (BI_tool_entry_delete) LDAP_P(( BackendDB *be, ID id, + struct berval *text )); struct BackendInfo { char *bi_type; /* type of backend */ @@ -2278,6 +2286,9 @@ struct BackendInfo { 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; @@ -2301,6 +2312,7 @@ struct BackendInfo { BI_tool_sync *bi_tool_sync; BI_tool_dn2id_get *bi_tool_dn2id_get; BI_tool_entry_modify *bi_tool_entry_modify; + BI_tool_entry_delete *bi_tool_entry_delete; #define SLAP_INDEX_ADD_OP 0x0001 #define SLAP_INDEX_DELETE_OP 0x0002 @@ -2372,10 +2384,14 @@ struct BackendInfo { 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; @@ -2396,6 +2412,9 @@ typedef enum slap_operation_e { op_aux_operational, op_aux_chk_referrals, op_aux_chk_controls, +#ifdef LDAP_X_TXN + op_txn, +#endif op_last } slap_operation_t; @@ -2910,6 +2929,7 @@ struct Connection { void *c_sasl_authctx; /* SASL authentication context */ void *c_sasl_sockctx; /* SASL security layer context */ void *c_sasl_extra; /* SASL session extra stuff */ + void *c_sasl_cbind; /* SASL channel binding */ Operation *c_sasl_bindop; /* set to current op if it's a bind */ #ifdef LDAP_X_TXN @@ -2993,9 +3013,7 @@ struct Listener { ber_socket_t sl_sd; Sockaddr sl_sa; #define sl_addr sl_sa.sa_in_addr -#ifdef LDAP_DEVEL #define LDAP_TCP_BUFFER -#endif #ifdef LDAP_TCP_BUFFER int sl_tcp_rmem; /* custom TCP read buffer size */ int sl_tcp_wmem; /* custom TCP write buffer size */