1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
|
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
* Copyright 2002-2024 The OpenLDAP Foundation.
* Portions Copyright 1997,2002-2003 IBM Corporation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted only as authorized by the OpenLDAP
* Public License.
*
* A copy of this license is available in the file LICENSE in the
* top-level directory of the distribution or, alternatively, at
* <http://www.OpenLDAP.org/license.html>.
*/
/* ACKNOWLEDGEMENTS:
* This work was initially developed by IBM Corporation for use in
* IBM products and subsequently ported to OpenLDAP Software by
* Steve Omrani. Additional significant contributors include:
* Luke Howard
*/
#ifdef LDAP_SLAPI /* SLAPI is OPTIONAL */
#ifndef _SLAPI_H
#define _SLAPI_H
LDAP_BEGIN_DECL
/*
* Quick 'n' dirty to make struct slapi_* in slapi-plugin.h opaque
*/
#define slapi_entry Entry
#define slapi_attr Attribute
#define slapi_value berval
#define slapi_valueset berval *
#define slapi_filter Filter
LDAP_END_DECL
#include <slapi-plugin.h>
LDAP_BEGIN_DECL
#define SLAPI_OVERLAY_NAME "slapi"
#define SLAPI_OPERATION_PBLOCK(_op) ((_op)->o_callback->sc_private)
#define SLAPI_BACKEND_PBLOCK(_be) ((_be)->be_pb)
#define SLAPI_OPERATION_EXTENSIONS(_op) ((_op)->o_hdr->oh_extensions)
#define SLAPI_CONNECTION_EXTENSIONS(_conn) ((_conn)->c_extensions)
#define SLAPI_CONTROL_MANAGEDSAIT_OID LDAP_CONTROL_MANAGEDSAIT
#define SLAPI_CONTROL_SORTEDSEARCH_OID LDAP_CONTROL_SORTREQUEST
#define SLAPI_CONTROL_PAGED_RESULTS_OID LDAP_CONTROL_PAGEDRESULTS
typedef int (*SLAPI_FUNC)( Slapi_PBlock *pb );
typedef struct _slapi_control {
int s_ctrl_num;
char **s_ctrl_oids;
unsigned long *s_ctrl_ops;
} Slapi_Control;
typedef struct _ExtendedOp {
struct berval ext_oid;
SLAPI_FUNC ext_func;
Backend *ext_be;
struct _ExtendedOp *ext_next;
} ExtendedOp;
/* Computed attribute support */
struct _computed_attr_context {
Slapi_PBlock *cac_pb;
Operation *cac_op;
void *cac_private;
};
/* for slapi_attr_type_cmp() */
#define SLAPI_TYPE_CMP_EXACT 0
#define SLAPI_TYPE_CMP_BASE 1
#define SLAPI_TYPE_CMP_SUBTYPE 2
typedef enum slapi_extension_e {
SLAPI_X_EXT_CONNECTION = 0,
SLAPI_X_EXT_OPERATION = 1,
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
*/
#ifndef NO_PBLOCK_CLASS /* where's this test from? */
typedef enum slapi_pblock_class_e {
PBLOCK_CLASS_INVALID = 0,
PBLOCK_CLASS_INTEGER,
PBLOCK_CLASS_LONG_INTEGER,
PBLOCK_CLASS_POINTER,
PBLOCK_CLASS_FUNCTION_POINTER
} slapi_pblock_class_t;
#define PBLOCK_SUCCESS (0)
#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 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_BE_POST_DELETE_FN)
#define SLAPI_IBM_PBLOCK -3
#define SLAPI_ENTRY_PRE_OP 52
#define SLAPI_ENTRY_POST_OP 53
/* This is the spelling in the SunOne 5.2 docs */
#define SLAPI_RES_CONTROLS SLAPI_RESCONTROLS
#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_MR_FILTER_ENTRY 170
#define SLAPI_MR_FILTER_TYPE 171
#define SLAPI_MR_FILTER_VALUE 172
#define SLAPI_MR_FILTER_OID 173
#define SLAPI_MR_FILTER_DNATTRS 174
#define SLAPI_LDIF2DB_FILE 180
#define SLAPI_LDIF2DB_REMOVEDUPVALS 185
#define SLAPI_DB2LDIF_PRINTKEY 183
#define SLAPI_CHANGENUMBER 197
#define SLAPI_LOG_OPERATION 198
#define SLAPI_DBSIZE 199
#define SLAPI_PLUGIN_DB_TEST_FN 227
#define SLAPI_PLUGIN_DB_NO_ACL 250
/* OpenLDAP private parameters */
#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;
LDAP_SLAPI_V (ldap_pvt_thread_mutex_t) slapi_printmessage_mutex;
LDAP_SLAPI_V (char *) slapi_log_file;
LDAP_SLAPI_V (int) slapi_log_level;
#include "proto-slapi.h"
#endif /* _SLAPI_H */
#endif /* LDAP_SLAPI */
|