llib-lsldap revision 2830:5228d1267a01
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21/* LINTLIBRARY */
22/* PROTOLIB1 */
23
24/*
25 * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
26 * Use is subject to license terms.
27 */
28#pragma ident	"%Z%%M%	%I%	%E% SMI"
29
30#include <stdio.h>
31#include <sys/types.h>
32#include <lber.h>
33#include <ldap.h>
34#include "ns_sldap.h"
35
36
37/*
38 * Simplified LDAP Naming APIs
39 */
40int __ns_ldap_list(
41	const char *service,
42	const char *filter,
43	int (*init_filter_cb)(const ns_ldap_search_desc_t *desc,
44			      char **realfilter, const void *userdata),
45	const char * const *attribute,
46	const ns_cred_t *cred,
47	const int flags,
48	ns_ldap_result_t ** result,
49	ns_ldap_error_t ** errorp,
50	int (*callback)(const ns_ldap_entry_t *entry, const void *userdata),
51	const void *userdata);
52
53int  __ns_ldap_addAttr(
54	const char *service,
55	const char *dn,
56	const ns_ldap_attr_t * const *attr,
57	const ns_cred_t *cred,
58	const int flags,
59	ns_ldap_error_t **errorp);
60
61int __ns_ldap_delAttr(
62	const char *service,
63	const char *dn,
64	const ns_ldap_attr_t * const *attr,
65	const ns_cred_t *cred,
66	const int flags,
67	ns_ldap_error_t **errorp);
68
69int  __ns_ldap_repAttr(
70	const char *service,
71	const char *dn,
72	const ns_ldap_attr_t * const *attr,
73	const ns_cred_t *cred,
74	const int flags,
75	ns_ldap_error_t **errorp);
76
77int  __ns_ldap_addEntry(
78	const char *service,
79	const char *dn,
80	const ns_ldap_entry_t *entry,
81	const ns_cred_t *cred,
82	const int flags,
83	ns_ldap_error_t **errorp);
84
85int  __ns_ldap_addTypedEntry(
86	const char *servicetype,
87	const char *basedn,
88	const void *data,
89	const int  create,
90	const ns_cred_t *cred,
91	const int flags,
92	ns_ldap_error_t **errorp);
93
94int __ns_ldap_delEntry(
95	const char *service,
96	const char *dn,
97	const ns_cred_t *cred,
98	const int flags,
99	ns_ldap_error_t **errorp);
100
101int __ns_ldap_firstEntry(
102	const char *service,
103	const char *filter,
104	int (*init_filter_cb)(const ns_ldap_search_desc_t *desc,
105			      char **realfilter, const void *userdata),
106	const char * const *attribute,
107	const ns_cred_t *cred,
108	const int flags,
109	void **cookie,
110	ns_ldap_result_t ** result,
111	ns_ldap_error_t **errorp,
112	const void *userdata);
113
114int  __ns_ldap_nextEntry(
115	void *cookie,
116	ns_ldap_result_t ** result,
117	ns_ldap_error_t **errorp);
118
119int  __ns_ldap_endEntry(
120	void **cookie,
121	ns_ldap_error_t **errorp);
122
123int __ns_ldap_freeResult(
124	ns_ldap_result_t **result);
125
126int __ns_ldap_freeError(
127	ns_ldap_error_t **errorp);
128
129int __ns_ldap_freeCookie(
130	void **cookie);
131
132int  __ns_ldap_uid2dn(
133	const char *uid,
134	char **userDN,
135	const ns_cred_t *cred,
136	ns_ldap_error_t ** errorp);
137
138int  __ns_ldap_host2dn(
139	const char *host,
140	const char *domain,
141	char **hostDN,
142	const ns_cred_t *cred,
143	ns_ldap_error_t ** errorp);
144
145int  __ns_ldap_dn2domain(
146	const char *dn,
147	char **domain,
148	const ns_cred_t *cred,
149	ns_ldap_error_t **errorp);
150
151int __ns_ldap_auth(
152	const ns_cred_t *cred,
153	const int flag,
154	ns_ldap_error_t **errorp,
155	LDAPControl **serverctrls,
156	LDAPControl **clientctrls);
157
158int __ns_ldap_err2str(
159	int err,
160	char **strmsg);
161
162int __ns_ldap_setParam(
163	const ParamIndexType type,
164	const void *data,
165	ns_ldap_error_t **errorp);
166
167int __ns_ldap_getParam(
168	const ParamIndexType type,
169	void ***data,
170	ns_ldap_error_t **errorp);
171
172int __ns_ldap_freeParam(
173	void ***data);
174
175char **__ns_ldap_getAttr(
176	const ns_ldap_entry_t *entry,
177	const char *attrname);
178
179int __s_api_prepend_automountmapname_to_dn(
180	const char *service,
181	char **basedn,
182	ns_ldap_error_t ** errorp);
183
184char *__s_api_get_canonical_name(
185	ns_ldap_entry_t *entry,
186	ns_ldap_attr_t *attrptr,
187	int case_ignore);
188
189void __ns_ldap_setServer(
190	int set);
191
192ns_ldap_error_t *__ns_ldap_LoadConfiguration(
193	void);
194
195ns_ldap_error_t *__ns_ldap_DumpConfiguration(
196	char *file);
197
198ns_ldap_error_t *__ns_ldap_DumpLdif(
199	char *filename);
200
201ns_ldap_error_t *__ns_ldap_print_config(
202	int verbose);
203
204void __ns_ldap_default_config(
205	void);
206
207int __ns_ldap_download(
208	const char *profile,
209	char *addr,
210	char *baseDN,
211	ns_ldap_error_t **errorp);
212
213int __ns_ldap_check_dns_preq(
214	int foreground,
215	int mode_verbose,
216	int mode_quiet,
217	const char *fname,
218	ns_ldap_self_gssapi_config_t config,
219	ns_ldap_error_t **errpp);
220
221int __ns_ldap_check_gssapi_preq(
222	int foreground,
223	int mode_verbose,
224	int mode_quiet,
225	ns_ldap_self_gssapi_config_t config,
226	ns_ldap_error_t **errpp);
227
228int __ns_ldap_check_all_preq(
229	int foreground,
230	int mode_verbose,
231	int mode_quiet,
232	ns_ldap_self_gssapi_config_t config,
233	ns_ldap_error_t **errpp);
234