yptol.h revision 7c478bd95313f5f23a4c958a745db2134aa03244
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef __NTOL_H
#define __NTOL_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
/*
* DESCRIPTION: NIS to LDAP header information
*/
/*
* N2L File names
*/
#define NTOL_MAP_FILE "/var/yp/NISLDAPmapping"
#define NTOL_CONFIG_FILE "/etc/default/ypserv"
/*
* Names of passwd files prefixes.
*/
#define PASSWD_PREFIX "passwd."
#define PASSWD_ADJUNCT_PREFIX "passwd.adjunct."
/*
* Name of netgroup maps.
*/
#define NETGROUP_MAP "netgroup"
#define NETGROUP_BYHOST NETGROUP_MAP ".byhost"
#define NETGROUP_BYUSER NETGROUP_MAP ".byuser"
/*
* Types of TTL update
*/
typedef enum {
TTL_MIN, TTL_MAX, TTL_RAND, TTL_RUNNING
}TTL_TYPE;
/*
* dit_access interface externs
*/
extern bool_t is_yptol_mode();
extern int read_from_dit(char *, char *, datum *, datum *);
extern suc_code write_to_dit(char *, char *, datum, datum, bool_t, bool_t);
extern int get_ttl_value(map_ctrl *, TTL_TYPE);
extern int get_mapping_domain_list(char ***);
extern int get_mapping_yppasswdd_domain_list(char ***);
extern void free_map_list(char **);
extern char **get_passwd_list(bool_t, char *);
extern void free_passwd_list(char **);
extern suc_code update_map_from_dit(map_ctrl *, bool_t);
extern char **get_mapping_map_list(char *);
extern suc_code make_nis_container(char *, char *, bool_t);
extern suc_code make_nis_domain(char *, bool_t);
extern suc_code update_netgroup_byxxx(map_ctrl *);
/*
* Other externs
*/
extern suc_code update_entry_ttl(map_ctrl *, datum *, TTL_TYPE);
extern void dump_datum(datum *);
extern suc_code update_timestamp(DBM *);
extern suc_code addpair(DBM *, char *, char *);
extern bool_t has_map_expired(map_ctrl *);
extern suc_code update_map_if_required(map_ctrl *, bool_t);
extern suc_code update_entry_if_required(map_ctrl *, datum *);
extern void set_key_data(map_ctrl *, datum *);
extern bool_t is_map_updating(map_ctrl *);
extern bool_t has_entry_expired(map_ctrl *, datum *);
extern void add_separator(char *str);
extern suc_code update_map_ttl(map_ctrl *);
extern bool_t is_special_key(datum *);
extern suc_code open_yptol_files(map_ctrl *);
extern void set_key_data(map_ctrl *map, datum *data);
/* Error codes for mapping unit */
#define MAP_NO_MEMORY -2
#define MAP_PARAM_ERROR -3
#define MAP_INTERNAL_ERROR -4
#define MAP_NAMEFIELD_MATCH_ERROR -5
#define MAP_NO_MAPPING_EXISTS -6
#define MAP_CREATE_LDAP_REQUEST_ERROR -7
#define MAP_NO_MATCHING_KEY -8
#define MAP_INDEXLIST_ERROR -9
#define MAP_WRITE_DISABLED -10
#define MAP_NO_DN -11
/* Initial frequency of up/down load message printing */
#define PRINT_FREQ 100
#ifdef __cplusplus
}
#endif
#endif /* __NTOL_H */