]> git.sur5r.net Git - openldap/blob - include/proto-ldap.h
ldap_modify: delete of last attribute value should delete attribute (ITS#229)
[openldap] / include / proto-ldap.h
1 /*
2  * proto-ldap.h
3  * function prototypes for ldap library
4  */
5
6
7 #ifndef LDAPFUNCDECL
8 #ifdef _WIN32
9 #define LDAPFUNCDECL    __declspec( dllexport )
10 #else /* _WIN32 */
11 #define LDAPFUNCDECL
12 #endif /* _WIN32 */
13 #endif /* LDAPFUNCDECL */
14
15
16 /*
17  * in abandon.c:
18  */
19 LDAPFUNCDECL int ldap_abandon( LDAP *ld, int msgid );
20
21 /*
22  * in add.c:
23  */
24 LDAPFUNCDECL int ldap_add( LDAP *ld, char *dn, LDAPMod **attrs );
25 LDAPFUNCDECL int ldap_add_s( LDAP *ld, char *dn, LDAPMod **attrs );
26
27 /*
28  * in bind.c:
29  */
30 LDAPFUNCDECL int ldap_bind( LDAP *ld, char *who, char *passwd, int authmethod );
31 LDAPFUNCDECL int ldap_bind_s( LDAP *ld, char *who, char *cred, int method );
32 #ifdef LDAP_REFERRALS
33 LDAPFUNCDECL void ldap_set_rebind_proc( LDAP *ld, int (*rebindproc)( LDAP *ld,
34         char **dnp, char **passwdp, int *authmethodp, int freeit ));
35 #endif /* LDAP_REFERRALS */
36
37 /*
38  * in sbind.c:
39  */
40 LDAPFUNCDECL int ldap_simple_bind( LDAP *ld, char *who, char *passwd );
41 LDAPFUNCDECL int ldap_simple_bind_s( LDAP *ld, char *who, char *passwd );
42
43 /*
44  * in kbind.c:
45  */
46 LDAPFUNCDECL int ldap_kerberos_bind_s( LDAP *ld, char *who );
47 LDAPFUNCDECL int ldap_kerberos_bind1( LDAP *ld, char *who );
48 LDAPFUNCDECL int ldap_kerberos_bind1_s( LDAP *ld, char *who );
49 LDAPFUNCDECL int ldap_kerberos_bind2( LDAP *ld, char *who );
50 LDAPFUNCDECL int ldap_kerberos_bind2_s( LDAP *ld, char *who );
51  
52
53 #ifndef NO_CACHE
54 /*
55  * in cache.c
56  */
57 LDAPFUNCDECL int ldap_enable_cache( LDAP *ld, long timeout, long maxmem );
58 LDAPFUNCDECL void ldap_disable_cache( LDAP *ld );
59 LDAPFUNCDECL void ldap_set_cache_options( LDAP *ld, unsigned long opts );
60 LDAPFUNCDECL void ldap_destroy_cache( LDAP *ld );
61 LDAPFUNCDECL void ldap_flush_cache( LDAP *ld );
62 LDAPFUNCDECL void ldap_uncache_entry( LDAP *ld, char *dn );
63 LDAPFUNCDECL void ldap_uncache_request( LDAP *ld, int msgid );
64 #endif /* !NO_CACHE */
65
66 /*
67  * in compare.c:
68  */
69 LDAPFUNCDECL int ldap_compare( LDAP *ld, char *dn, char *attr, char *value );
70 LDAPFUNCDECL int ldap_compare_s( LDAP *ld, char *dn, char *attr, char *value );
71
72 /*
73  * in delete.c:
74  */
75 LDAPFUNCDECL int ldap_delete( LDAP *ld, char *dn );
76 LDAPFUNCDECL int ldap_delete_s( LDAP *ld, char *dn );
77
78 /*
79  * in error.c:
80  */
81 LDAPFUNCDECL int ldap_result2error( LDAP *ld, LDAPMessage *r, int freeit );
82 LDAPFUNCDECL char *ldap_err2string( int err );
83 LDAPFUNCDECL void ldap_perror( LDAP *ld, char *s );
84
85 /*
86  * in modify.c:
87  */
88 LDAPFUNCDECL int ldap_modify( LDAP *ld, char *dn, LDAPMod **mods );
89 LDAPFUNCDECL int ldap_modify_s( LDAP *ld, char *dn, LDAPMod **mods );
90
91 /*
92  * in modrdn.c:
93  */
94 LDAPFUNCDECL int ldap_modrdn( LDAP *ld, char *dn, char *newrdn );
95 LDAPFUNCDECL int ldap_modrdn_s( LDAP *ld, char *dn, char *newrdn );
96 LDAPFUNCDECL int ldap_modrdn2( LDAP *ld, char *dn, char *newrdn,
97         int deleteoldrdn );
98 LDAPFUNCDECL int ldap_modrdn2_s( LDAP *ld, char *dn, char *newrdn,
99         int deleteoldrdn);
100
101 /*
102  * in open.c:
103  */
104 LDAPFUNCDECL LDAP *ldap_open( char *host, int port );
105 LDAPFUNCDECL LDAP *ldap_init( char *defhost, int defport );
106
107 /*
108  * in getentry.c:
109  */
110 LDAPFUNCDECL LDAPMessage *ldap_first_entry( LDAP *ld, LDAPMessage *chain );
111 LDAPFUNCDECL LDAPMessage *ldap_next_entry( LDAP *ld, LDAPMessage *entry );
112 LDAPFUNCDECL int ldap_count_entries( LDAP *ld, LDAPMessage *chain );
113
114 /*
115  * in addentry.c
116  */
117 LDAPFUNCDECL LDAPMessage *ldap_delete_result_entry( LDAPMessage **list,
118         LDAPMessage *e );
119 LDAPFUNCDECL void ldap_add_result_entry( LDAPMessage **list, LDAPMessage *e );
120
121 /*
122  * in getdn.c
123  */
124 LDAPFUNCDECL char *ldap_get_dn( LDAP *ld, LDAPMessage *entry );
125 LDAPFUNCDECL char *ldap_dn2ufn( char *dn );
126 LDAPFUNCDECL char **ldap_explode_dn( char *dn, int notypes );
127 LDAPFUNCDECL char **ldap_explode_dns( char *dn );
128 LDAPFUNCDECL int ldap_is_dns_dn( char *dn );
129
130 /*
131  * in getattr.c
132  */
133 LDAPFUNCDECL char *ldap_first_attribute( LDAP *ld, LDAPMessage *entry,
134         BerElement **ber );
135 LDAPFUNCDECL char *ldap_next_attribute( LDAP *ld, LDAPMessage *entry,
136         BerElement *ber );
137
138 /*
139  * in getvalues.c
140  */
141 LDAPFUNCDECL char **ldap_get_values( LDAP *ld, LDAPMessage *entry, char *target );
142 LDAPFUNCDECL struct berval **ldap_get_values_len( LDAP *ld, LDAPMessage *entry,
143         char *target );
144 LDAPFUNCDECL int ldap_count_values( char **vals );
145 LDAPFUNCDECL int ldap_count_values_len( struct berval **vals );
146 LDAPFUNCDECL void ldap_value_free( char **vals );
147 LDAPFUNCDECL void ldap_value_free_len( struct berval **vals );
148
149 /*
150  * in result.c:
151  */
152 LDAPFUNCDECL int ldap_result( LDAP *ld, int msgid, int all,
153         struct timeval *timeout, LDAPMessage **result );
154 LDAPFUNCDECL int ldap_msgfree( LDAPMessage *lm );
155 LDAPFUNCDECL int ldap_msgdelete( LDAP *ld, int msgid );
156
157 /*
158  * in search.c:
159  */
160 LDAPFUNCDECL int ldap_search( LDAP *ld, char *base, int scope, char *filter,
161         char **attrs, int attrsonly );
162 LDAPFUNCDECL int ldap_search_s( LDAP *ld, char *base, int scope, char *filter,
163         char **attrs, int attrsonly, LDAPMessage **res );
164 LDAPFUNCDECL int ldap_search_st( LDAP *ld, char *base, int scope, char *filter,
165     char **attrs, int attrsonly, struct timeval *timeout, LDAPMessage **res );
166
167 /*
168  * in ufn.c
169  */
170 LDAPFUNCDECL int ldap_ufn_search_c( LDAP *ld, char *ufn, char **attrs,
171         int attrsonly, LDAPMessage **res, int (*cancelproc)( void *cl ),
172         void *cancelparm );
173 LDAPFUNCDECL int ldap_ufn_search_ct( LDAP *ld, char *ufn, char **attrs,
174         int attrsonly, LDAPMessage **res, int (*cancelproc)( void *cl ),
175         void *cancelparm, char *tag1, char *tag2, char *tag3 );
176 LDAPFUNCDECL int ldap_ufn_search_s( LDAP *ld, char *ufn, char **attrs,
177         int attrsonly, LDAPMessage **res );
178 LDAPFUNCDECL LDAPFiltDesc *ldap_ufn_setfilter( LDAP *ld, char *fname );
179 LDAPFUNCDECL void ldap_ufn_setprefix( LDAP *ld, char *prefix );
180 LDAPFUNCDECL int ldap_ufn_timeout( void *tvparam );
181
182
183 /*
184  * in unbind.c
185  */
186 LDAPFUNCDECL int ldap_unbind( LDAP *ld );
187 LDAPFUNCDECL int ldap_unbind_s( LDAP *ld );
188
189
190 /*
191  * in getfilter.c
192  */
193 LDAPFUNCDECL LDAPFiltDesc *ldap_init_getfilter( char *fname );
194 LDAPFUNCDECL LDAPFiltDesc *ldap_init_getfilter_buf( char *buf, long buflen );
195 LDAPFUNCDECL LDAPFiltInfo *ldap_getfirstfilter( LDAPFiltDesc *lfdp, char *tagpat,
196         char *value );
197 LDAPFUNCDECL LDAPFiltInfo *ldap_getnextfilter( LDAPFiltDesc *lfdp );
198 LDAPFUNCDECL void ldap_setfilteraffixes( LDAPFiltDesc *lfdp, char *prefix, char *suffix );
199 LDAPFUNCDECL void ldap_build_filter( char *buf, unsigned long buflen,
200         char *pattern, char *prefix, char *suffix, char *attr,
201         char *value, char **valwords );
202
203 /*
204  * in free.c
205  */
206 LDAPFUNCDECL void ldap_getfilter_free( LDAPFiltDesc *lfdp );
207 LDAPFUNCDECL void ldap_mods_free( LDAPMod **mods, int freemods );
208
209 /*
210  * in friendly.c
211  */
212 LDAPFUNCDECL char *ldap_friendly_name( char *filename, char *uname,
213         FriendlyMap **map );
214 LDAPFUNCDECL void ldap_free_friendlymap( FriendlyMap **map );
215
216
217 /*
218  * in cldap.c
219  */
220 LDAPFUNCDECL LDAP *cldap_open( char *host, int port );
221 LDAPFUNCDECL void cldap_close( LDAP *ld );
222 LDAPFUNCDECL int cldap_search_s( LDAP *ld, char *base, int scope, char *filter,
223         char **attrs, int attrsonly, LDAPMessage **res, char *logdn );
224 LDAPFUNCDECL void cldap_setretryinfo( LDAP *ld, int tries, int timeout );
225
226
227 /*
228  * in sort.c
229  */
230 LDAPFUNCDECL int ldap_sort_entries( LDAP *ld, LDAPMessage **chain, char *attr,
231         int (*cmp)() );
232 LDAPFUNCDECL int ldap_sort_values( LDAP *ld, char **vals, int (*cmp)() );
233 LDAPFUNCDECL int ldap_sort_strcasecmp( char **a, char **b );
234
235
236 /*
237  * in url.c
238  */
239 LDAPFUNCDECL int ldap_is_ldap_url( char *url );
240 LDAPFUNCDECL int ldap_url_parse( char *url, LDAPURLDesc **ludpp );
241 LDAPFUNCDECL void ldap_free_urldesc( LDAPURLDesc *ludp );
242 LDAPFUNCDECL int ldap_url_search( LDAP *ld, char *url, int attrsonly );
243 LDAPFUNCDECL int ldap_url_search_s( LDAP *ld, char *url, int attrsonly,
244         LDAPMessage **res );
245 LDAPFUNCDECL int ldap_url_search_st( LDAP *ld, char *url, int attrsonly,
246         struct timeval *timeout, LDAPMessage **res );
247
248
249 /*
250  * in charset.c
251  */
252 #ifdef STR_TRANSLATION
253 LDAPFUNCDECL void ldap_set_string_translators( LDAP *ld,
254         BERTranslateProc encode_proc, BERTranslateProc decode_proc );
255 LDAPFUNCDECL int ldap_translate_from_t61( LDAP *ld, char **bufp,
256         unsigned long *lenp, int free_input );
257 LDAPFUNCDECL int ldap_translate_to_t61( LDAP *ld, char **bufp,
258         unsigned long *lenp, int free_input );
259 LDAPFUNCDECL void ldap_enable_translation( LDAP *ld, LDAPMessage *entry,
260         int enable );
261
262 #ifdef LDAP_CHARSET_8859
263 LDAPFUNCDECL int ldap_t61_to_8859( char **bufp, unsigned long *buflenp,
264         int free_input );
265 LDAPFUNCDECL int ldap_8859_to_t61( char **bufp, unsigned long *buflenp,
266         int free_input );
267 #endif /* LDAP_CHARSET_8859 */
268 #endif /* STR_TRANSLATION */
269
270
271 #ifdef WINSOCK
272 /*
273  * in msdos/winsock/wsa.c
274  */
275 LDAPFUNCDECL void ldap_memfree( void *p );
276 #endif /* WINSOCK */