1 0 stevel /* 2 0 stevel * CDDL HEADER START 3 0 stevel * 4 0 stevel * The contents of this file are subject to the terms of the 5 0 stevel * Common Development and Distribution License, Version 1.0 only 6 0 stevel * (the "License"). You may not use this file except in compliance 7 0 stevel * with the License. 8 0 stevel * 9 0 stevel * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 0 stevel * or http://www.opensolaris.org/os/licensing. 11 0 stevel * See the License for the specific language governing permissions 12 0 stevel * and limitations under the License. 13 0 stevel * 14 0 stevel * When distributing Covered Code, include this CDDL HEADER in each 15 0 stevel * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 0 stevel * If applicable, add the following below this CDDL HEADER, with the 17 0 stevel * fields enclosed by brackets "[]" replaced with your own identifying 18 0 stevel * information: Portions Copyright [yyyy] [name of copyright owner] 19 0 stevel * 20 0 stevel * CDDL HEADER END 21 0 stevel */ 22 0 stevel /* 23 0 stevel * Copyright 1991-2003 Sun Microsystems, Inc. All rights reserved. 24 0 stevel * Use is subject to license terms. 25 0 stevel */ 26 0 stevel 27 0 stevel /* 28 0 stevel * nislib.h 29 0 stevel * 30 0 stevel * This file contains the interfaces that are visible in the SunOS 5.x 31 0 stevel * implementation of NIS Plus. When using C++ the defined __cplusplus and 32 0 stevel * __STDC__ should both be true. 33 0 stevel */ 34 0 stevel 35 0 stevel #ifndef _RPCSVC_NISLIB_H 36 0 stevel #define _RPCSVC_NISLIB_H 37 0 stevel 38 0 stevel #pragma ident "%Z%%M% %I% %E% SMI" 39 0 stevel 40 0 stevel #ifdef __cplusplus 41 0 stevel extern "C" { 42 0 stevel #endif 43 0 stevel 44 0 stevel #ifdef __STDC__ 45 0 stevel extern void nis_freeresult(nis_result *); 46 0 stevel extern nis_result *nis_lookup(nis_name, uint_t); 47 0 stevel extern nis_result *nis_list(nis_name, uint_t, 48 0 stevel int (*)(nis_name, nis_object *, void *), void *); 49 0 stevel extern nis_result *nis_add(nis_name, nis_object *); 50 0 stevel extern nis_result *nis_remove(nis_name, nis_object *); 51 0 stevel extern nis_result *nis_modify(nis_name, nis_object *); 52 0 stevel 53 0 stevel extern nis_result *nis_add_entry(nis_name, nis_object *, uint_t); 54 0 stevel extern nis_result *nis_remove_entry(nis_name, nis_object *, uint_t); 55 0 stevel extern nis_result *nis_modify_entry(nis_name, nis_object *, uint_t); 56 0 stevel extern nis_result *nis_first_entry(nis_name); 57 0 stevel extern nis_result *nis_next_entry(nis_name, netobj *); 58 0 stevel 59 0 stevel extern nis_error nis_mkdir(nis_name, nis_server *); 60 0 stevel extern nis_error nis_rmdir(nis_name, nis_server *); 61 0 stevel extern name_pos nis_dir_cmp(nis_name, nis_name); 62 0 stevel 63 0 stevel extern nis_name *nis_getnames(nis_name); 64 0 stevel extern void nis_freenames(nis_name *); 65 0 stevel extern nis_name nis_domain_of(nis_name); 66 0 stevel extern nis_name nis_leaf_of(nis_name); 67 0 stevel extern nis_name nis_leaf_of_r(const nis_name, char *, size_t); 68 0 stevel extern nis_name nis_name_of(nis_name); 69 0 stevel extern nis_name nis_local_group(void); 70 0 stevel extern nis_name nis_local_directory(void); 71 0 stevel extern nis_name nis_local_principal(void); 72 0 stevel extern nis_name nis_local_host(void); 73 0 stevel 74 0 stevel extern void nis_destroy_object(nis_object *); 75 0 stevel extern nis_object *nis_clone_object(nis_object *, nis_object *); 76 0 stevel extern void nis_print_object(nis_object *o); 77 0 stevel 78 0 stevel extern char *nis_sperrno(nis_error); 79 0 stevel extern void nis_perror(nis_error, char *); 80 0 stevel extern char *nis_sperror(nis_error, char *); 81 0 stevel extern char *nis_sperror_r(nis_error, char *, char *, int len); 82 0 stevel extern void nis_lerror(nis_error, char *); 83 0 stevel 84 0 stevel extern void nis_print_group_entry(nis_name); 85 0 stevel extern bool_t nis_ismember(nis_name, nis_name); 86 0 stevel extern nis_error nis_creategroup(nis_name, uint_t); 87 0 stevel extern nis_error nis_destroygroup(nis_name); 88 0 stevel extern nis_error nis_addmember(nis_name, nis_name); 89 0 stevel extern nis_error nis_removemember(nis_name, nis_name); 90 0 stevel extern nis_error nis_verifygroup(nis_name); 91 0 stevel 92 0 stevel extern void nis_freeservlist(nis_server **); 93 0 stevel extern nis_server **nis_getservlist(nis_name); 94 0 stevel extern nis_error nis_stats(nis_server *, nis_tag *, int, nis_tag **); 95 0 stevel extern nis_error nis_servstate(nis_server *, nis_tag *, int, nis_tag **); 96 0 stevel extern void nis_freetags(nis_tag *, int); 97 0 stevel 98 0 stevel extern nis_result *nis_checkpoint(nis_name); 99 0 stevel extern void nis_ping(nis_name, uint32_t, nis_object *); 100 0 stevel 101 0 stevel /* 102 0 stevel * XXX: PLEASE NOTE THAT THE FOLLOWING FUNCTIONS ARE INTERNAL 103 0 stevel * TO NIS+ AND SHOULD NOT BE USED BY ANY APPLICATION PROGRAM. 104 0 stevel * THEIR SEMANTICS AND/OR SIGNATURE CAN CHANGE WITHOUT NOTICE. 105 0 stevel * SO, PLEASE DO NOT USE THEM. YOU ARE WARNED!!!! 106 0 stevel */ 107 0 stevel 108 0 stevel extern char **__break_name(nis_name, int *); 109 0 stevel extern int __name_distance(char **, char **); 110 0 stevel extern nis_result *nis_make_error(nis_error, uint32_t, uint32_t, uint32_t, 111 0 stevel uint32_t); 112 0 stevel extern nis_attr *__cvt2attr(int *, char **); 113 0 stevel extern void nis_free_request(ib_request *); 114 0 stevel extern nis_error nis_get_request(nis_name, nis_object *, netobj*, ib_request*); 115 0 stevel extern nis_object *nis_read_obj(char *); 116 0 stevel extern int nis_write_obj(char *, nis_object *); 117 0 stevel extern int nis_in_table(nis_name, NIS_HASH_TABLE *, int *); 118 0 stevel extern int nis_insert_item(NIS_HASH_ITEM *, NIS_HASH_TABLE *); 119 0 stevel extern NIS_HASH_ITEM *nis_find_item(nis_name, NIS_HASH_TABLE *); 120 0 stevel extern NIS_HASH_ITEM *nis_remove_item(nis_name, NIS_HASH_TABLE *); 121 0 stevel extern void nis_insert_name(nis_name, NIS_HASH_TABLE *); 122 0 stevel extern void nis_remove_name(nis_name, NIS_HASH_TABLE *); 123 0 stevel extern CLIENT *nis_make_rpchandle(nis_server *, int, rpcprog_t, rpcvers_t, 124 0 stevel uint_t, int, int); 125 0 stevel extern void *nis_get_static_storage(struct nis_sdata *, uint_t, uint_t); 126 0 stevel extern char *nis_data(char *); 127 0 stevel extern char *nis_old_data(char *); 128 0 stevel extern void nis_print_rights(uint_t); 129 0 stevel extern void nis_print_directory(directory_obj *); 130 0 stevel extern void nis_print_group(group_obj *); 131 0 stevel extern void nis_print_table(table_obj *); 132 0 stevel extern void nis_print_link(link_obj *); 133 0 stevel extern void nis_print_entry(entry_obj *); 134 0 stevel extern nis_server *__nis_init_callback(CLIENT *, 135 0 stevel int (*)(nis_name, nis_object *, void *), void *); 136 0 stevel extern int __nis_run_callback(netobj *, rpcproc_t, struct timeval *, CLIENT *); 137 0 stevel 138 0 stevel extern log_result *nis_dumplog(nis_server *, nis_name, uint32_t); 139 0 stevel extern log_result *nis_dump(nis_server *, nis_name, 140 0 stevel int (*)(nis_name, nis_object *, void *)); 141 0 stevel extern nis_name __nis_rpc_domain(void); 142 0 stevel 143 0 stevel extern bool_t __do_ismember(nis_name, nis_object *, 144 0 stevel nis_result *(*)(nis_name, uint_t)); 145 0 stevel extern nis_name __nis_map_group(nis_name); 146 0 stevel extern nis_name __nis_map_group_r(const nis_name, char *, size_t); 147 0 stevel 148 0 stevel void __nis_CacheStart(void); 149 0 stevel nis_error __nis_CacheBind(char *dname, directory_obj *dobj); 150 0 stevel bool_t __nis_CacheRemoveEntry(directory_obj *dobj); 151 0 stevel nis_error __nis_CacheSearch(char *dname, directory_obj *dobj); 152 0 stevel void __nis_CacheRestart(void); 153 0 stevel void __nis_CachePrint(void); 154 0 stevel void __nis_CachePrintDir(char *); 155 0 stevel bool_t __nis_CacheAddEntry(fd_result *, directory_obj *); 156 0 stevel void __nis_CacheRefreshEntry(char *); 157 0 stevel nis_error __nis_CacheBindDir(char *dname, 158 0 stevel nis_bound_directory **binding, int flags); 159 0 stevel nis_error __nis_CacheBindMaster(char *dname, nis_bound_directory **binding); 160 0 stevel nis_error __nis_CacheBindServer(nis_server *srv, int nsrv, 161 0 stevel nis_bound_directory **binding); 162 0 stevel int __nis_CacheRefreshBinding(nis_bound_directory *binding); 163 0 stevel int __nis_CacheRefreshAddress(nis_bound_endpoint *bep); 164 0 stevel int __nis_CacheRefreshCallback(nis_bound_endpoint *bep); 165 0 stevel nis_error __nis_CacheLocalInit(uint32_t *exp_time); 166 0 stevel uint32_t __nis_CacheLocalLoadPref(void); 167 0 stevel nis_error __nis_CacheMgrInit(void); 168 0 stevel void __nis_CacheMgrCleanup(void); 169 0 stevel void __nis_CacheMgrReadColdstart(void); 170 0 stevel nis_error __nis_CacheMgrBindReplica(char *dname); 171 0 stevel nis_error __nis_CacheMgrBindMaster(char *dname); 172 0 stevel nis_error __nis_CacheMgrBindServer(nis_server *srv, int nsrv); 173 0 stevel int __nis_CacheMgrRefreshBinding(nis_bound_directory *binding); 174 0 stevel int __nis_CacheMgrRefreshAddress(nis_bound_endpoint *bep); 175 0 stevel int __nis_CacheMgrRefreshCallback(nis_bound_endpoint *bep); 176 0 stevel int __nis_CacheMgrUpdateUaddr(char *uaddr); 177 0 stevel void __nis_CacheMgrMarkUp(void); 178 0 stevel uint32_t __nis_CacheMgrTimers(void); 179 0 stevel uint32_t __nis_CacheMgrRefreshCache(void); 180 0 stevel uint32_t __nis_serverRefreshCache(void); 181 0 stevel 182 0 stevel extern CLIENT *__get_ti_clnt(char *, CLIENT *, char **, pid_t *, dev_t *); 183 0 stevel extern int __strcmp_case_insens(char *, char *); 184 0 stevel extern int __strncmp_case_insens(char *, char *); 185 0 stevel 186 0 stevel extern fd_result *nis_finddirectory(directory_obj *, nis_name); 187 0 stevel extern int __start_clock(int); 188 0 stevel extern uint32_t __stop_clock(int); 189 0 stevel 190 0 stevel fd_result *__nis_finddirectory(nis_bound_directory **, char *dname); 191 0 stevel int __dir_prefix(char **, char **); 192 0 stevel void __free_break_name(char **, int); 193 0 stevel void __broken_name_print(char **, int); 194 0 stevel void __free_fdresult(fd_result *res); 195 0 stevel nis_error __nis_ping_servers(nis_bound_directory *, int, int); 196 0 stevel struct netconfig *__nis_get_netconfig(endpoint *ep); 197 0 stevel int __dir_same(char **, char **); 198 0 stevel void nis_free_binding(nis_bound_directory *); 199 0 stevel char *__nis_xdr_dup(xdrproc_t, char *, char *); 200 0 stevel 201 0 stevel CLIENT *__nis_clnt_create(int, struct netconfig *, char *, struct netbuf *, 202 0 stevel int, int, int, int, int); 203 0 stevel 204 0 stevel #else 205 0 stevel 206 0 stevel /* Non-prototype definitions (old fashioned C) */ 207 0 stevel 208 0 stevel extern void nis_freeresult(); 209 0 stevel extern nis_result *nis_lookup(); 210 0 stevel extern nis_result *nis_list(); 211 0 stevel extern nis_result *nis_add(); 212 0 stevel extern nis_result *nis_remove(); 213 0 stevel extern nis_result *nis_modify(); 214 0 stevel 215 0 stevel extern nis_result *nis_add_entry(); 216 0 stevel extern nis_result *nis_remove_entry(); 217 0 stevel extern nis_result *nis_modify_entry(); 218 0 stevel extern nis_result *nis_first_entry(); 219 0 stevel extern nis_result *nis_next_entry(); 220 0 stevel 221 0 stevel extern nis_error nis_mkdir(); 222 0 stevel extern nis_error nis_rmdir(); 223 0 stevel extern name_pos nis_dir_cmp(); 224 0 stevel 225 0 stevel extern nis_name *nis_getnames(); 226 0 stevel extern void nis_freenames(); 227 0 stevel extern nis_name nis_domain_of(); 228 0 stevel extern nis_name nis_leaf_of(); 229 0 stevel extern nis_name nis_leaf_of_r(); 230 0 stevel extern nis_name nis_name_of(); 231 0 stevel extern nis_name nis_local_group(); 232 0 stevel extern nis_name nis_local_directory(); 233 0 stevel extern nis_name nis_local_principal(); 234 0 stevel extern nis_name nis_local_host(); 235 0 stevel 236 0 stevel extern void nis_destroy_object(); 237 0 stevel extern nis_object *nis_clone_object(); 238 0 stevel extern void nis_print_object(); 239 0 stevel 240 0 stevel extern char *nis_sperrno(); 241 0 stevel extern void nis_perror(); 242 0 stevel extern char *nis_sperror(); 243 0 stevel extern char *nis_sperror_r(); 244 0 stevel extern void nis_lerror(); 245 0 stevel 246 0 stevel extern void nis_print_group_entry(); 247 0 stevel extern bool_t nis_ismember(); 248 0 stevel extern nis_error nis_creategroup(); 249 0 stevel extern nis_error nis_destroygroup(); 250 0 stevel extern nis_error nis_addmember(); 251 0 stevel extern nis_error nis_removemember(); 252 0 stevel extern nis_error nis_verifygroup(); 253 0 stevel 254 0 stevel extern void nis_freeservlist(); 255 0 stevel extern nis_server **nis_getservlist(); 256 0 stevel extern nis_error nis_stats(); 257 0 stevel extern nis_error nis_servstate(); 258 0 stevel extern void nis_freetags(); 259 0 stevel 260 0 stevel extern nis_result *nis_checkpoint(); 261 0 stevel extern void nis_ping(); 262 0 stevel 263 0 stevel /* 264 0 stevel * XXX: PLEASE NOTE THAT THE FOLLOWING FUNCTIONS ARE INTERNAL 265 0 stevel * TO NIS+ AND SHOULD NOT BE USED BY ANY APPLICATION PROGRAM. 266 0 stevel * THEIR SEMANTICS AND/OR SIGNATURE CAN CHANGE WITHOUT NOTICE. 267 0 stevel * SO, PLEASE DO NOT USE THEM. YOU ARE WARNED!!!! 268 0 stevel */ 269 0 stevel extern char **__break_name(); 270 0 stevel extern int __name_distance(); 271 0 stevel extern nis_result *nis_make_error(); 272 0 stevel extern nis_attr *__cvt2attr(); 273 0 stevel extern void nis_free_request(); 274 0 stevel extern nis_error nis_get_request(); 275 0 stevel extern nis_object *nis_read_obj(); 276 0 stevel extern int nis_write_obj(); 277 0 stevel extern int nis_in_table(); 278 0 stevel extern int nis_insert_item(); 279 0 stevel extern NIS_HASH_ITEM *nis_find_item(); 280 0 stevel extern NIS_HASH_ITEM *nis_remove_item(); 281 0 stevel extern void nis_insert_name(); 282 0 stevel extern void nis_remove_name(); 283 0 stevel extern CLIENT *nis_make_rpchandle(); 284 0 stevel extern void *nis_get_static_storage(); 285 0 stevel extern char *nis_data(); 286 0 stevel extern char *nis_old_data(); 287 0 stevel 288 0 stevel extern void nis_print_rights(); 289 0 stevel extern void nis_print_directory(); 290 0 stevel extern void nis_print_group(); 291 0 stevel extern void nis_print_table(); 292 0 stevel extern void nis_print_link(); 293 0 stevel extern void nis_print_entry(); 294 0 stevel 295 0 stevel extern nis_server *__nis_init_callback(); 296 0 stevel extern int __nis_run_callback(); 297 0 stevel 298 0 stevel extern log_result *nis_dump(); 299 0 stevel extern log_result *nis_dumplog(); 300 0 stevel extern nis_name __nis_rpc_domain(); 301 0 stevel 302 0 stevel extern bool_t __do_ismember(); 303 0 stevel extern nis_name __nis_map_group(); 304 0 stevel extern nis_name __nis_map_group_r(); 305 0 stevel 306 0 stevel void __nis_CacheStart(); 307 0 stevel nis_error __nis_CacheBind(); 308 0 stevel bool_t __nis_CacheRemoveEntry(); 309 0 stevel nis_error __nis_CacheSearch(); 310 0 stevel void __nis_CacheRestart(); 311 0 stevel void __nis_CachePrint(); 312 0 stevel void __nis_CachePrintDir(); 313 0 stevel bool_t __nis_CacheAddEntry(); 314 0 stevel void __nis_CacheRefreshEntry(); 315 0 stevel nis_error __nis_CacheBindDir(); 316 0 stevel nis_error __nis_CacheBindMaster(); 317 0 stevel nis_error __nis_CacheBindServer(); 318 0 stevel int __nis_CacheRefreshBinding(); 319 0 stevel int __nis_CacheRefreshAddress(); 320 0 stevel int __nis_CacheRefreshCallback(); 321 0 stevel nis_error __nis_CacheLocalInit(); 322 0 stevel uint32_t __nis_CacheLocalLoadPref(); 323 0 stevel nis_error __nis_CacheMgrInit(); 324 0 stevel void __nis_CacheMgrCleanup(); 325 0 stevel void __nis_CacheMgrReadColdstart(); 326 0 stevel nis_error __nis_CacheMgrBindReplica(); 327 0 stevel nis_error __nis_CacheMgrBindMaster(); 328 0 stevel nis_error __nis_CacheMgrBindServer(); 329 0 stevel int __nis_CacheMgrRefreshBinding(); 330 0 stevel int __nis_CacheMgrRefreshAddress(); 331 0 stevel int __nis_CacheMgrRefreshCallback(); 332 0 stevel int __nis_CacheMgrUpdateUaddr(); 333 0 stevel void __nis_CacheMgrMarkUp(); 334 0 stevel uint32_t __nis_CacheMgrTimers(); 335 0 stevel uint32_t __nis_CacheMgrRefreshCache(); 336 0 stevel uint32_t __nis_serverRefreshCache(); 337 0 stevel 338 0 stevel extern CLIENT *__get_ti_clnt(); 339 0 stevel extern int __strcmp_case_insens(); 340 0 stevel extern int __strncmp_case_insens(); 341 0 stevel 342 0 stevel extern fd_result *nis_finddirectory(); 343 0 stevel extern int __start_clock(); 344 0 stevel extern uint32_t __stop_clock(); 345 0 stevel 346 0 stevel fd_result *__nis_finddirectory(); 347 0 stevel int __dir_prefix(); 348 0 stevel void __free_break_name(); 349 0 stevel void __broken_name_print(); 350 0 stevel void __free_fdresult(); 351 0 stevel nis_error __nis_ping_servers(); 352 0 stevel struct netconfig *__nis_get_netconfig(); 353 0 stevel int __dir_same(); 354 0 stevel void nis_free_binding(); 355 0 stevel char *__nis_xdr_dup(); 356 0 stevel 357 0 stevel CLIENT *__nis_clnt_create(); 358 0 stevel 359 0 stevel #endif 360 0 stevel 361 0 stevel #ifdef __cplusplus 362 0 stevel } 363 0 stevel #endif 364 0 stevel 365 0 stevel #endif /* _RPCSVC_NISLIB_H */ 366