blob: 14d6bc1df9e68c12b63e1b0bde48cd5649bb1211 (
plain)
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-2022 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 */
|