Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wine-mirror
GitHub Repository: wine-mirror/wine
Path: blob/master/libs/ldap/include/lber_pvt.h
4394 views
1
/* $OpenLDAP$ */
2
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3
*
4
* Copyright 1998-2024 The OpenLDAP Foundation.
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted only as authorized by the OpenLDAP
9
* Public License.
10
*
11
* A copy of this license is available in file LICENSE in the
12
* top-level directory of the distribution or, alternatively, at
13
* <http://www.OpenLDAP.org/license.html>.
14
*/
15
16
/*
17
* lber_pvt.h - Header for ber_pvt_ functions.
18
* These are meant to be internal to OpenLDAP Software.
19
*/
20
21
#ifndef _LBER_PVT_H
22
#define _LBER_PVT_H 1
23
24
#include <lber.h>
25
26
LDAP_BEGIN_DECL
27
28
/* for allocating aligned buffers (on the stack) */
29
#define LBER_ALIGNED_BUFFER(uname,size) \
30
union uname { \
31
char buffer[size]; \
32
/* force alignment */ \
33
int ialign; \
34
long lalign; \
35
float falign; \
36
double dalign; \
37
char* palign; \
38
}
39
40
#define LBER_ELEMENT_SIZEOF (256) /* must be >= sizeof(BerElement) */
41
typedef LBER_ALIGNED_BUFFER(lber_berelement_u,LBER_ELEMENT_SIZEOF)
42
BerElementBuffer;
43
44
typedef struct sockbuf_buf {
45
ber_len_t buf_size;
46
ber_len_t buf_ptr;
47
ber_len_t buf_end;
48
char *buf_base;
49
} Sockbuf_Buf;
50
51
/*
52
* bprint.c
53
*/
54
LBER_V( BER_LOG_PRINT_FN ) ber_pvt_log_print;
55
56
LBER_F( int )
57
ber_pvt_log_printf LDAP_P((
58
int errlvl,
59
int loglvl,
60
const char *fmt,
61
... )) LDAP_GCCATTR((format(printf, 3, 4)));
62
63
/*
64
* sockbuf.c
65
*/
66
LBER_F( ber_slen_t )
67
ber_pvt_sb_do_write LDAP_P(( Sockbuf_IO_Desc *sbiod, Sockbuf_Buf *buf_out ));
68
69
LBER_F( void )
70
ber_pvt_sb_buf_init LDAP_P(( Sockbuf_Buf *buf ));
71
72
LBER_F( void )
73
ber_pvt_sb_buf_destroy LDAP_P(( Sockbuf_Buf *buf ));
74
75
LBER_F( int )
76
ber_pvt_sb_grow_buffer LDAP_P(( Sockbuf_Buf *buf, ber_len_t minsize ));
77
78
LBER_F( ber_len_t )
79
ber_pvt_sb_copy_out LDAP_P(( Sockbuf_Buf *sbb, char *buf, ber_len_t len ));
80
81
LBER_F( int )
82
ber_pvt_socket_set_nonblock LDAP_P(( ber_socket_t sd, int nb ));
83
84
/*
85
* memory.c
86
*/
87
LBER_F( void * )
88
ber_memalloc_x LDAP_P((
89
ber_len_t s, void *ctx));
90
91
LBER_F( void * )
92
ber_memrealloc_x LDAP_P((
93
void* p,
94
ber_len_t s, void *ctx ));
95
96
LBER_F( void * )
97
ber_memcalloc_x LDAP_P((
98
ber_len_t n,
99
ber_len_t s, void *ctx ));
100
101
LBER_F( void )
102
ber_memfree_x LDAP_P((
103
void* p, void *ctx ));
104
105
LBER_F( void )
106
ber_memvfree_x LDAP_P((
107
void** vector, void *ctx ));
108
109
LBER_F( void )
110
ber_bvfree_x LDAP_P((
111
struct berval *bv, void *ctx ));
112
113
LBER_F( void )
114
ber_bvecfree_x LDAP_P((
115
struct berval **bv, void *ctx ));
116
117
LBER_F( int )
118
ber_bvecadd_x LDAP_P((
119
struct berval ***bvec,
120
struct berval *bv, void *ctx ));
121
122
LBER_F( struct berval * )
123
ber_dupbv_x LDAP_P((
124
struct berval *dst, struct berval *src, void *ctx ));
125
126
LBER_F( struct berval * )
127
ber_str2bv_x LDAP_P((
128
LDAP_CONST char *, ber_len_t len, int dup, struct berval *bv, void *ctx));
129
130
LBER_F( struct berval * )
131
ber_mem2bv_x LDAP_P((
132
LDAP_CONST char *, ber_len_t len, int dup, struct berval *bv, void *ctx));
133
134
LBER_F( char * )
135
ber_strdup_x LDAP_P((
136
LDAP_CONST char *, void *ctx ));
137
138
LBER_F( struct berval * )
139
ber_bvreplace_x LDAP_P((
140
struct berval *dst, LDAP_CONST struct berval *src, void *ctx ));
141
142
LBER_F( void )
143
ber_bvarray_free_x LDAP_P(( BerVarray p, void *ctx ));
144
145
LBER_F( int )
146
ber_bvarray_add_x LDAP_P(( BerVarray *p, BerValue *bv, void *ctx ));
147
148
LBER_F( int )
149
ber_bvarray_dup_x LDAP_P(( BerVarray *dst, BerVarray src, void *ctx ));
150
151
#if 0
152
#define ber_bvstrcmp(v1,v2) \
153
((v1)->bv_len < (v2)->bv_len \
154
? -1 : ((v1)->bv_len > (v2)->bv_len \
155
? 1 : strncmp((v1)->bv_val, (v2)->bv_val, (v1)->bv_len) ))
156
#else
157
/* avoid strncmp() */
158
#define ber_bvstrcmp(v1,v2) ber_bvcmp((v1),(v2))
159
#endif
160
161
#define ber_bvstrcasecmp(v1,v2) \
162
((v1)->bv_len < (v2)->bv_len \
163
? -1 : ((v1)->bv_len > (v2)->bv_len \
164
? 1 : strncasecmp((v1)->bv_val, (v2)->bv_val, (v1)->bv_len) ))
165
166
#define ber_bvccmp(v1,c) \
167
( (v1)->bv_len == 1 && (v1)->bv_val[0] == (c) )
168
169
#define ber_strccmp(s,c) \
170
( (s)[0] == (c) && (s)[1] == '\0' )
171
172
#define ber_bvchr(bv,c) \
173
((char *) memchr( (bv)->bv_val, (c), (bv)->bv_len ))
174
175
#define ber_bvrchr(bv,c) \
176
((char *) lutil_memrchr( (bv)->bv_val, (c), (bv)->bv_len ))
177
178
#define ber_bvchr_post(dst,bv,c) \
179
do { \
180
(dst)->bv_val = memchr( (bv)->bv_val, (c), (bv)->bv_len ); \
181
(dst)->bv_len = (dst)->bv_val ? (bv)->bv_len - ((dst)->bv_val - (bv)->bv_val) : 0; \
182
} while (0)
183
184
#define ber_bvchr_pre(dst,bv,c) \
185
do { \
186
(dst)->bv_val = memchr( (bv)->bv_val, (c), (bv)->bv_len ); \
187
(dst)->bv_len = (dst)->bv_val ? ((dst)->bv_val - (bv)->bv_val) : (bv)->bv_len; \
188
(dst)->bv_val = (bv)->bv_val; \
189
} while (0)
190
191
#define ber_bvrchr_post(dst,bv,c) \
192
do { \
193
(dst)->bv_val = lutil_memrchr( (bv)->bv_val, (c), (bv)->bv_len ); \
194
(dst)->bv_len = (dst)->bv_val ? (bv)->bv_len - ((dst)->bv_val - (bv)->bv_val) : 0; \
195
} while (0)
196
197
#define ber_bvrchr_pre(dst,bv,c) \
198
do { \
199
(dst)->bv_val = lutil_memrchr( (bv)->bv_val, (c), (bv)->bv_len ); \
200
(dst)->bv_len = (dst)->bv_val ? ((dst)->bv_val - (bv)->bv_val) : (bv)->bv_len; \
201
(dst)->bv_val = (bv)->bv_val; \
202
} while (0)
203
204
#define BER_STRLENOF(s) (sizeof(s)-1)
205
#define BER_BVC(s) { BER_STRLENOF(s), (char *)(s) }
206
#define BER_BVNULL { 0L, NULL }
207
#define BER_BVZERO(bv) \
208
do { \
209
(bv)->bv_len = 0; \
210
(bv)->bv_val = NULL; \
211
} while (0)
212
#define BER_BVSTR(bv,s) \
213
do { \
214
(bv)->bv_len = BER_STRLENOF(s); \
215
(bv)->bv_val = (s); \
216
} while (0)
217
#define BER_BVISNULL(bv) ((bv)->bv_val == NULL)
218
#define BER_BVISEMPTY(bv) ((bv)->bv_len == 0)
219
220
LDAP_END_DECL
221
222
#endif
223
224