xref: /onnv-gate/usr/src/lib/libldap4/common/llib-lldap (revision 0:68f95e015346)
1/* LINTLIBRARY */
2/* PROTOLIB1 */
3
4/*
5 * Copyright (c) 1997 by Sun Microsystems, Inc.
6 * All rights reserved.
7 */
8#pragma ident	"%Z%%M%	%I%	%E% SMI"
9
10#include <stdio.h>
11#include <sys/types.h>
12#include <lber.h>
13#include <ldap.h>
14
15/*
16 * /usr/src/lib/libldap routines
17 */
18
19
20/*
21 * in abandon.c:
22 */
23int ldap_abandon_ext(LDAP *ld, int msgid, LDAPControl **serverctrls, LDAPControl ** clientctrls);
24int ldap_abandon( LDAP *ld, int msgid );
25
26/*
27 * in add.c:
28 */
29int ldap_add_ext( LDAP *ld, char *dn, LDAPMod **attrs, LDAPControl ** serverctrls, LDAPControl **clientctrls, int *msgidp);
30int ldap_add_ext_s( LDAP *ld, char *dn, LDAPMod **attrs, LDAPControl ** serverctrls, LDAPControl **clientctrls);
31int ldap_add( LDAP *ld, char *dn, LDAPMod **attrs );
32int ldap_add_s( LDAP *ld, char *dn, LDAPMod **attrs );
33
34/*
35 * in bind.c:
36 */
37
38/*
39 * in sbind.c:
40 */
41int ldap_simple_bind( LDAP *ld, char *who, char *passwd );
42int ldap_simple_bind_s( LDAP *ld, char *who, char *passwd );
43
44/*
45 * in saslbind.c:
46 */
47int ldap_sasl_bind(LDAP *ld, char *dn, char *mechanism, struct berval *cred, LDAPControl **serverctrls, LDAPControl **clientctrls, int *msgidp);
48int ldap_sasl_bind_s(LDAP *ld, char *dn, char *mechanism, struct berval *cred, LDAPControl **serverctrls, LDAPControl **clientctrls, struct berval **servercredp);
49
50/*
51 * in kbind.c:
52 */
53
54#ifndef NO_CACHE
55/*
56 * in cache.c
57 */
58int ldap_enable_cache( LDAP *ld, time_t timeout, ssize_t maxmem );
59void ldap_disable_cache( LDAP *ld );
60void ldap_set_cache_options( LDAP *ld, unsigned int opts );
61void ldap_destroy_cache( LDAP *ld );
62void ldap_flush_cache( LDAP *ld );
63void ldap_uncache_entry( LDAP *ld, char *dn );
64void ldap_uncache_request( LDAP *ld, int msgid );
65#endif /* !NO_CACHE */
66
67/*
68 * in compare.c:
69 */
70int ldap_compare_ext(LDAP *ld, char *dn, char *attr, struct berval *bvalue, LDAPControl ** serverctrls, LDAPControl **clientctrls, int *msgidp);
71int ldap_compare_ext_s(LDAP *ld, char *dn, char *attr, struct berval *bvalue, LDAPControl ** serverctrls, LDAPControl **clientctrls) ;
72int ldap_compare( LDAP *ld, char *dn, char *attr, char *value );
73int ldap_compare_s( LDAP *ld, char *dn, char *attr, char *value );
74
75/*
76 * in delete.c:
77 */
78int ldap_delete_ext(LDAP *ld, char *dn, LDAPControl **serverctrls, LDAPControl **clientctrls, int *msgidp);
79int ldap_delete_ext_s(LDAP *ld, char *dn, LDAPControl **serverctrls, LDAPControl **clientctrls);
80int ldap_delete( LDAP *ld, char *dn );
81int ldap_delete_s( LDAP *ld, char *dn );
82
83/*
84 * in error.c:
85 */
86char *ldap_err2string( int err );
87
88
89/*
90 * in modify.c:
91 */
92int ldap_modify_ext(LDAP *ld, char *dn, LDAPMod **mods, LDAPControl **serverctrls, LDAPControl **clientctrls, int *msgidp);
93int ldap_modify_ext_s(LDAP *ld, char *dn, LDAPMod **mods, LDAPControl **serverctrls, LDAPControl **clientctrls) ;
94int ldap_modify( LDAP *ld, char *dn, LDAPMod **mods );
95int ldap_modify_s( LDAP *ld, char *dn, LDAPMod **mods );
96
97/*
98 * in modrdn.c:
99 */
100
101/*
102 * in rename.c:
103 */
104int ldap_rename(LDAP *ld, char *dn, char *newrdn, char *newparent, int deleteoldrdn, LDAPControl ** serverctrls, LDAPControl **clientctrls, int *msgidp);
105int ldap_rename_s(LDAP *ld, char *dn, char *newrdn, char *newparent, int deleteoldrdn, LDAPControl ** serverctrls, LDAPControl **clientctrls);
106
107/*
108 * in open.c:
109 */
110LDAP *ldap_init( char *defhost, int defport );
111
112
113#ifdef LDAP_SSL
114LDAP *ldap_ssl_init(char *defhost, int defport, char *keyname );
115#endif
116
117/*
118 * in getentry.c:
119 */
120LDAPMessage *ldap_first_entry( LDAP *ld, LDAPMessage *res );
121LDAPMessage *ldap_next_entry( LDAP *ld, LDAPMessage *entry );
122int ldap_count_entries( LDAP *ld, LDAPMessage *res );
123
124/*
125 * in getmsg.c:
126 */
127LDAPMessage *ldap_first_message( LDAP *ld, LDAPMessage *res );
128LDAPMessage *ldap_next_message( LDAP *ld, LDAPMessage *msg );
129int ldap_count_messages( LDAP *ld, LDAPMessage *res );
130
131/*
132 * in getref.c:
133 */
134LDAPMessage *ldap_first_reference( LDAP *ld, LDAPMessage *res );
135LDAPMessage *ldap_next_reference( LDAP *ld, LDAPMessage *msg );
136int ldap_count_references( LDAP *ld, LDAPMessage *res );
137char ** ldap_get_reference_urls( LDAP *ld, LDAPMessage *res );
138
139/*
140 * in addentry.c
141 */
142LDAPMessage *ldap_delete_result_entry( LDAPMessage **list,
143	LDAPMessage *e );
144void ldap_add_result_entry( LDAPMessage **list, LDAPMessage *e );
145
146/*
147 * in getdn.c
148 */
149char *ldap_get_dn( LDAP *ld, LDAPMessage *entry );
150char **ldap_explode_dn( char *dn, int notypes );
151char ** ldap_explode_rdn( char *rdn, int notypes );
152char *ldap_dn2ufn( char *dn );
153
154char **ldap_explode_dns( char *dn );
155int ldap_is_dns_dn( char *dn );
156char *ldap_dns_to_dn(char *dns_name, int *nameparts);
157
158/*
159 * in getattr.c
160 */
161char *ldap_first_attribute( LDAP *ld, LDAPMessage *entry,
162	BerElement **ber );
163char *ldap_next_attribute( LDAP *ld, LDAPMessage *entry,
164	BerElement *ber );
165void ldap_memfree(char *mem);
166
167/*
168 * in getvalues.c
169 */
170char **ldap_get_values( LDAP *ld, LDAPMessage *entry, char *target );
171struct berval **ldap_get_values_len( LDAP *ld, LDAPMessage *entry,
172	char *target );
173int ldap_count_values( char **vals );
174int ldap_count_values_len( struct berval **vals );
175void ldap_value_free( char **vals );
176void ldap_value_free_len( struct berval **vals );
177
178/*
179 * in result.c:
180 */
181int ldap_result( LDAP *ld, int msgid, int all,
182	struct timeval *timeout, LDAPMessage **result );
183int ldap_msgdelete( LDAP *ld, int msgid );
184int ldap_msgfree( LDAPMessage *lm );
185int ldap_msgtype( LDAPMessage *res );
186int ldap_msgid( LDAPMessage *res );
187int ldap_parse_result(LDAP *ld, LDAPMessage *res, int *errcodep, char **matcheddnp, char **errmsgp, char ***referralsp, LDAPControl ***serverctrlsp, int freeit) ;
188int ldap_parse_sasl_bind_result(LDAP *ld, LDAPMessage *res, struct berval **servercredp, int freeit);
189int ldap_parse_extended_result(LDAP *ld, LDAPMessage *res, char **resultoidp, struct berval **resultdata, int freeit);
190
191/*
192 * in search.c:
193 */
194int ldap_search_ext(LDAP *ld, char *base, int scope, char *filter, char **attrs, int attrsonly, LDAPControl **serverctrls, LDAPControl **clientctrls, struct timeval *timeoutp, int sizelimit, int *msgidp);
195int ldap_search_ext_s(LDAP *ld, char *base, int scope, char *filter, char **attrs, int attrsonly, LDAPControl **serverctrls, LDAPControl **clientctrls, struct timeval *timeoutp, int sizelimit, LDAPMessage **res);
196
197int ldap_search( LDAP *ld, char *base, int scope, char *filter,
198	char **attrs, int attrsonly );
199int ldap_search_s( LDAP *ld, char *base, int scope, char *filter,
200	char **attrs, int attrsonly, LDAPMessage **res );
201int ldap_search_st( LDAP *ld, char *base, int scope, char *filter,
202    char **attrs, int attrsonly, struct timeval *timeout, LDAPMessage **res );
203
204/*
205 * in ufn.c
206 */
207int ldap_ufn_search_c( LDAP *ld, char *ufn, char **attrs,
208	int attrsonly, LDAPMessage **res, int (*cancelproc)( void *cl ),
209	void *cancelparm );
210int ldap_ufn_search_ct( LDAP *ld, char *ufn, char **attrs,
211	int attrsonly, LDAPMessage **res, int (*cancelproc)( void *cl ),
212	void *cancelparm, char *tag1, char *tag2, char *tag3 );
213int ldap_ufn_search_s( LDAP *ld, char *ufn, char **attrs,
214	int attrsonly, LDAPMessage **res );
215LDAPFiltDesc *ldap_ufn_setfilter( LDAP *ld, char *fname );
216void ldap_ufn_setprefix( LDAP *ld, char *prefix );
217int ldap_ufn_timeout( void *tvparam );
218
219
220/*
221 * in unbind.c
222 */
223int ldap_unbind( LDAP *ld );
224int ldap_unbind_s( LDAP *ld );
225
226
227/*
228 * in getfilter.c
229 */
230LDAPFiltDesc *ldap_init_getfilter( char *fname );
231LDAPFiltDesc *ldap_init_getfilter_buf( char *buf, ssize_t buflen );
232LDAPFiltInfo *ldap_getfirstfilter( LDAPFiltDesc *lfdp, char *tagpat,
233	char *value );
234LDAPFiltInfo *ldap_getnextfilter( LDAPFiltDesc *lfdp );
235void ldap_setfilteraffixes( LDAPFiltDesc *lfdp, char *prefix, char *suffix );
236void ldap_build_filter( char *buf, size_t buflen,
237	char *pattern, char *prefix, char *suffix, char *attr,
238	char *value, char **valwords );
239
240/*
241 * in free.c
242 */
243void ldap_getfilter_free( LDAPFiltDesc *lfdp );
244void ldap_mods_free( LDAPMod **mods, int freemods );
245
246/*
247 * in friendly.c
248 */
249char *ldap_friendly_name( char *filename, char *uname,
250	FriendlyMap **map );
251void ldap_free_friendlymap( FriendlyMap **map );
252
253
254/*
255 * in cldap.c
256 */
257LDAP *cldap_open( char *host, int port );
258void cldap_close( LDAP *ld );
259int cldap_search_s( LDAP *ld, char *base, int scope, char *filter,
260	char **attrs, int attrsonly, LDAPMessage **res, char *logdn );
261void cldap_setretryinfo( LDAP *ld, int tries, time_t timeout );
262
263
264/*
265 * in sort.c
266 */
267int ldap_sort_entries( LDAP *ld, LDAPMessage **chain, char *attr,
268	int (*cmp)() );
269int ldap_sort_values( LDAP *ld, char **vals, int (*cmp)() );
270int ldap_sort_strcasecmp( char **a, char **b );
271
272
273/*
274 * in url.c
275 */
276int ldap_is_ldap_url( char *url );
277int ldap_url_parse( char *url, LDAPURLDesc **ludpp );
278void ldap_free_urlexts( LDAPURLExt **lues );
279void ldap_free_urldesc( LDAPURLDesc *ludp );
280int ldap_url_search( LDAP *ld, char *url, int attrsonly );
281int ldap_url_search_s( LDAP *ld, char *url, int attrsonly,
282	LDAPMessage **res );
283int ldap_url_search_st( LDAP *ld, char *url, int attrsonly,
284	struct timeval *timeout, LDAPMessage **res );
285char *ldap_dns_to_url(LDAP *ld, char *dns_name, char *attrs,
286char *scope, char *filter);
287char *ldap_dn_to_url(LDAP *ld, char *dn, int nameparts);
288
289
290/*
291 * in charset.c
292 */
293#ifdef STR_TRANSLATION
294void ldap_set_string_translators( LDAP *ld,
295	BERTranslateProc encode_proc, BERTranslateProc decode_proc );
296int ldap_translate_from_t61( LDAP *ld, char **bufp,
297	unsigned int *lenp, int free_input );
298int ldap_translate_to_t61( LDAP *ld, char **bufp,
299	unsigned int *lenp, int free_input );
300void ldap_enable_translation( LDAP *ld, LDAPMessage *entry,
301	int enable );
302
303#ifdef LDAP_CHARSET_8859
304int ldap_t61_to_8859( char **bufp, unsigned int *buflenp,
305	int free_input );
306int ldap_8859_to_t61( char **bufp, unsigned int *buflenp,
307	int free_input );
308#endif /* LDAP_CHARSET_8859 */
309#endif /* STR_TRANSLATION */
310
311
312#ifdef WINSOCK
313/*
314 * in msdos/winsock/wsa.c
315 */
316void ldap_memfree( void *p );
317#endif /* WINSOCK */
318