#ifndef __NTOL_H
#define __NTOL_H
#ifdef __cplusplus
extern "C" {
#endif
#define NTOL_MAP_FILE "/var/yp/NISLDAPmapping"
#define NTOL_CONFIG_FILE "/etc/default/ypserv"
#define PASSWD_PREFIX "passwd."
#define PASSWD_ADJUNCT_PREFIX "passwd.adjunct."
#define NETGROUP_MAP "netgroup"
#define NETGROUP_BYHOST NETGROUP_MAP ".byhost"
#define NETGROUP_BYUSER NETGROUP_MAP ".byuser"
typedef enum {
TTL_MIN, TTL_MAX, TTL_RAND, TTL_RUNNING
}TTL_TYPE;
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 *);
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);
#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
#define PRINT_FREQ 100
#ifdef __cplusplus
}
#endif
#endif