/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2005 The OpenLDAP Foundation.
+ * Copyright 2002-2012 The OpenLDAP Foundation.
* Portions Copyright 1997,2002-2003 IBM Corporation.
* All rights reserved.
*
/*
* Quick 'n' dirty to make struct slapi_* in slapi-plugin.h opaque
*/
-#define slapi_entry slap_entry
-#define slapi_attr slap_attr
+#define slapi_entry Entry
+#define slapi_attr Attribute
#define slapi_value berval
#define slapi_valueset berval *
-#define slapi_filter slap_filter
+#define slapi_filter Filter
LDAP_END_DECL
#define SLAPI_OVERLAY_NAME "slapi"
#define SLAPI_OPERATION_PBLOCK(_op) ((_op)->o_callback->sc_private)
-#define SLAPI_CONNECTION_PBLOCK(_conn) ((_conn)->c_pb);
#define SLAPI_BACKEND_PBLOCK(_be) ((_be)->be_pb)
#define SLAPI_OPERATION_EXTENSIONS(_op) ((_op)->o_hdr->oh_extensions)
SLAPI_X_EXT_MAX = 2
} slapi_extension_t;
+struct slapi_dn {
+ unsigned char flag;
+ struct berval dn;
+ struct berval ndn;
+};
+
+struct slapi_rdn {
+ unsigned char flag;
+ struct berval bv;
+ LDAPRDN rdn;
+};
+
/*
* Was: slapi_pblock.h
*/
#define PBLOCK_ERROR (-1)
#define PBLOCK_MAX_PARAMS 100
+union slapi_pblock_value {
+ int pv_integer;
+ long pv_long_integer;
+ void *pv_pointer;
+ int (*pv_function_pointer)();
+};
+
struct slapi_pblock {
- ldap_pvt_thread_mutex_t pblockMutex;
- int ckParams;
- int numParams;
- int curParams[PBLOCK_MAX_PARAMS];
- void *curVals[PBLOCK_MAX_PARAMS];
+ ldap_pvt_thread_mutex_t pb_mutex;
+ int pb_nParams;
+ int pb_params[PBLOCK_MAX_PARAMS];
+ union slapi_pblock_value pb_values[PBLOCK_MAX_PARAMS];
+ /* native types */
+ Connection *pb_conn;
+ Operation *pb_op;
+ SlapReply *pb_rs;
+ int pb_intop;
+ char pb_textbuf[ SLAP_TEXT_BUFLEN ];
};
#endif /* !NO_PBLOCK_CLASS */
* Was: plugin.h
*/
-#define SLAPI_PLUGIN_IS_POST_FN(x) ((x) >= SLAPI_PLUGIN_POST_BIND_FN && (x) <= SLAPI_PLUGIN_POST_RESULT_FN)
+#define SLAPI_PLUGIN_IS_POST_FN(x) ((x) >= SLAPI_PLUGIN_POST_BIND_FN && (x) <= SLAPI_PLUGIN_BE_POST_DELETE_FN)
-/* really private stuff */
-#define SLAPI_X_CONFIG_ARGV 1400
-#define SLAPI_X_INTOP_FLAGS 1401
-#define SLAPI_X_INTOP_RESULT_CALLBACK 1402
-#define SLAPI_X_INTOP_SEARCH_ENTRY_CALLBACK 1403
-#define SLAPI_X_INTOP_REFERRAL_ENTRY_CALLBACK 1404
-#define SLAPI_X_INTOP_CALLBACK_DATA 1405
-
-#define SLAPI_OPERATION_PARAMETERS 138
-
-#define SLAPI_PLUGIN_DB_TEST_FN 227
-#define SLAPI_PLUGIN_DB_NO_ACL 250
-
-/* DS 5.x Computed Attribute Callbacks (not exposed) */
-#define SLAPI_PLUGIN_COMPUTE_EVALUATOR_FN 1200
-#define SLAPI_PLUGIN_COMPUTE_SEARCH_REWRITER_FN 1201
+#define SLAPI_IBM_PBLOCK -3
#define SLAPI_ENTRY_PRE_OP 52
#define SLAPI_ENTRY_POST_OP 53
#define SLAPI_ABANDON_MSGID 120
+#define SLAPI_OPERATION_PARAMETERS 138
+
#define SLAPI_SEQ_TYPE 150
#define SLAPI_SEQ_ATTRNAME 151
#define SLAPI_SEQ_VAL 152
#define SLAPI_DB2LDIF_PRINTKEY 183
-#define SLAPI_PARENT_TXN 190
-#define SLAPI_TXN 191
-
#define SLAPI_CHANGENUMBER 197
#define SLAPI_LOG_OPERATION 198
#define SLAPI_DBSIZE 199
-#define SLAPI_IBM_PBLOCK -3
+#define SLAPI_PLUGIN_DB_TEST_FN 227
+#define SLAPI_PLUGIN_DB_NO_ACL 250
+
+/* OpenLDAP private parametrs */
+#define SLAPI_PLUGIN_COMPUTE_EVALUATOR_FN 1200
+#define SLAPI_PLUGIN_COMPUTE_SEARCH_REWRITER_FN 1201
+
+#define SLAPI_X_CONFIG_ARGV 1400
+#define SLAPI_X_INTOP_FLAGS 1401
+#define SLAPI_X_INTOP_RESULT_CALLBACK 1402
+#define SLAPI_X_INTOP_SEARCH_ENTRY_CALLBACK 1403
+#define SLAPI_X_INTOP_REFERRAL_ENTRY_CALLBACK 1404
+#define SLAPI_X_INTOP_CALLBACK_DATA 1405
+#define SLAPI_X_OLD_RESCONTROLS 1406
LDAP_SLAPI_V (ldap_pvt_thread_mutex_t) slapi_hn_mutex;
LDAP_SLAPI_V (ldap_pvt_thread_mutex_t) slapi_time_mutex;