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 (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. 26 */ 27 28#include <stdio.h> 29#include <sys/types.h> 30#include <lber.h> 31#include <ldap.h> 32#include "ns_sldap.h" 33 34 35/* 36 * Simplified LDAP Naming APIs 37 */ 38int __ns_ldap_list( 39 const char *service, 40 const char *filter, 41 int (*init_filter_cb)(const ns_ldap_search_desc_t *desc, 42 char **realfilter, const void *userdata), 43 const char * const *attribute, 44 const ns_cred_t *cred, 45 const int flags, 46 ns_ldap_result_t ** result, 47 ns_ldap_error_t ** errorp, 48 int (*callback)(const ns_ldap_entry_t *entry, const void *userdata), 49 const void *userdata); 50 51int __ns_ldap_list_sort( 52 const char *service, 53 const char *filter, 54 const char *sortattr, 55 int (*init_filter_cb)(const ns_ldap_search_desc_t *desc, 56 char **realfilter, const void *userdata), 57 const char * const *attribute, 58 const ns_cred_t *cred, 59 const int flags, 60 ns_ldap_result_t ** result, 61 ns_ldap_error_t ** errorp, 62 int (*callback)(const ns_ldap_entry_t *entry, const void *userdata), 63 const void *userdata); 64 65int __ns_ldap_addAttr( 66 const char *service, 67 const char *dn, 68 const ns_ldap_attr_t * const *attr, 69 const ns_cred_t *cred, 70 const int flags, 71 ns_ldap_error_t **errorp); 72 73int __ns_ldap_delAttr( 74 const char *service, 75 const char *dn, 76 const ns_ldap_attr_t * const *attr, 77 const ns_cred_t *cred, 78 const int flags, 79 ns_ldap_error_t **errorp); 80 81int __ns_ldap_repAttr( 82 const char *service, 83 const char *dn, 84 const ns_ldap_attr_t * const *attr, 85 const ns_cred_t *cred, 86 const int flags, 87 ns_ldap_error_t **errorp); 88 89int __ns_ldap_addEntry( 90 const char *service, 91 const char *dn, 92 const ns_ldap_entry_t *entry, 93 const ns_cred_t *cred, 94 const int flags, 95 ns_ldap_error_t **errorp); 96 97int __ns_ldap_addTypedEntry( 98 const char *servicetype, 99 const char *basedn, 100 const void *data, 101 const int create, 102 const ns_cred_t *cred, 103 const int flags, 104 ns_ldap_error_t **errorp); 105 106int __ns_ldap_delEntry( 107 const char *service, 108 const char *dn, 109 const ns_cred_t *cred, 110 const int flags, 111 ns_ldap_error_t **errorp); 112 113int __ns_ldap_firstEntry( 114 const char *service, 115 const char *filter, 116 const char *sortattr, 117 int (*init_filter_cb)(const ns_ldap_search_desc_t *desc, 118 char **realfilter, const void *userdata), 119 const char * const *attribute, 120 const ns_cred_t *cred, 121 const int flags, 122 void **cookie, 123 ns_ldap_result_t ** result, 124 ns_ldap_error_t **errorp, 125 const void *userdata); 126 127int __ns_ldap_nextEntry( 128 void *cookie, 129 ns_ldap_result_t ** result, 130 ns_ldap_error_t **errorp); 131 132int __ns_ldap_endEntry( 133 void **cookie, 134 ns_ldap_error_t **errorp); 135 136int __ns_ldap_freeResult( 137 ns_ldap_result_t **result); 138 139int __ns_ldap_freeError( 140 ns_ldap_error_t **errorp); 141 142int __ns_ldap_freeCookie( 143 void **cookie); 144 145int __ns_ldap_uid2dn( 146 const char *uid, 147 char **userDN, 148 const ns_cred_t *cred, 149 ns_ldap_error_t ** errorp); 150 151int __ns_ldap_host2dn( 152 const char *host, 153 const char *domain, 154 char **hostDN, 155 const ns_cred_t *cred, 156 ns_ldap_error_t ** errorp); 157 158int __ns_ldap_dn2domain( 159 const char *dn, 160 char **domain, 161 const ns_cred_t *cred, 162 ns_ldap_error_t **errorp); 163 164int __ns_ldap_auth( 165 const ns_cred_t *cred, 166 const int flag, 167 ns_ldap_error_t **errorp, 168 LDAPControl **serverctrls, 169 LDAPControl **clientctrls); 170 171int __ns_ldap_err2str( 172 int err, 173 char **strmsg); 174 175int __ns_ldap_setParam( 176 const ParamIndexType type, 177 const void *data, 178 ns_ldap_error_t **errorp); 179 180int __ns_ldap_getParam( 181 const ParamIndexType type, 182 void ***data, 183 ns_ldap_error_t **errorp); 184 185int __ns_ldap_freeParam( 186 void ***data); 187 188char **__ns_ldap_getAttr( 189 const ns_ldap_entry_t *entry, 190 const char *attrname); 191 192int __s_api_prepend_automountmapname_to_dn( 193 const char *service, 194 char **basedn, 195 ns_ldap_error_t ** errorp); 196 197char *__s_api_get_canonical_name( 198 ns_ldap_entry_t *entry, 199 ns_ldap_attr_t *attrptr, 200 int case_ignore); 201 202void __ns_ldap_setServer( 203 int set); 204 205ns_ldap_error_t *__ns_ldap_LoadConfiguration( 206 void); 207 208ns_ldap_error_t *__ns_ldap_DumpConfiguration( 209 char *file); 210 211ns_ldap_error_t *__ns_ldap_DumpLdif( 212 char *filename); 213 214ns_ldap_error_t *__ns_ldap_print_config( 215 int verbose); 216 217void __ns_ldap_default_config( 218 void); 219 220int __ns_ldap_download( 221 const char *profile, 222 char *addr, 223 char *baseDN, 224 ns_ldap_error_t **errorp); 225 226int __ns_ldap_check_dns_preq( 227 int foreground, 228 int mode_verbose, 229 int mode_quiet, 230 const char *fname, 231 ns_ldap_self_gssapi_config_t config, 232 ns_ldap_error_t **errpp); 233 234int __ns_ldap_check_gssapi_preq( 235 int foreground, 236 int mode_verbose, 237 int mode_quiet, 238 ns_ldap_self_gssapi_config_t config, 239 ns_ldap_error_t **errpp); 240 241int __ns_ldap_check_all_preq( 242 int foreground, 243 int mode_verbose, 244 int mode_quiet, 245 ns_ldap_self_gssapi_config_t config, 246 ns_ldap_error_t **errpp); 247