~ttx/openldap/lucid-gssapi-495418

« back to all changes in this revision

Viewing changes to servers/slapd/slapi/slapi.h

  • Committer: Bazaar Package Importer
  • Author(s): Mathias Gug
  • Date: 2008-07-10 14:45:49 UTC
  • Revision ID: james.westby@ubuntu.com-20080710144549-wck73med0e72gfyo
Tags: upstream-2.4.10
ImportĀ upstreamĀ versionĀ 2.4.10

Show diffs side-by-side

added added

removed removed

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