/*
 * Copyright (c) 2006 Proofpoint, Inc. and its suppliers.
 *	All rights reserved.
 *
 * By using this file, you agree to the terms and conditions set
 * forth in the LICENSE file which can be found at the top level of
 * the sendmail distribution.
 *
 *	$Id: map.h,v 8.4 2013-11-22 20:51:56 ca Exp $
 */

#ifndef _MAP_H
# define _MAP_H 1

extern char	*arith_map_lookup __P((MAP *, char *, char **, int *));

extern char	*arpa_map_lookup __P((MAP *, char *, char **, int *));

extern char	*bestmx_map_lookup __P((MAP *, char *, char **, int *));

extern char	*bogus_map_lookup __P((MAP *, char *, char **, int *));

#if NEWDB
extern bool	bt_map_open __P((MAP *, int));

extern char	*db_map_lookup __P((MAP *, char *, char **, int *));
extern void	db_map_store __P((MAP *, char *, char *));
extern void	db_map_close __P((MAP *));
#endif /* NEWDB */

extern bool	dequote_init __P((MAP *, char *));
extern char	*dequote_map __P((MAP *, char *, char **, int *));

extern bool	dns_map_open __P((MAP *, int));
extern bool	dns_map_parseargs __P((MAP *, char *));
extern char	*dns_map_lookup __P((MAP *, char *, char **, int *));

extern bool	dprintf_map_parseargs __P((MAP *, char *));
extern char	*dprintf_map_lookup __P((MAP *, char *, char **, int *));

#if NEWDB
extern bool	hash_map_open __P((MAP *, int));
#endif

extern bool	host_map_init __P((MAP *, char *));
extern char	*host_map_lookup __P((MAP *, char *, char **, int *));

extern char	*impl_map_lookup __P((MAP *, char *, char **, int *));
extern void	impl_map_store __P((MAP *, char *, char *));
extern bool	impl_map_open __P((MAP *, int));
extern void	impl_map_close __P((MAP *));

extern char	*macro_map_lookup __P((MAP *, char *, char **, int *));

extern bool	map_parseargs __P((MAP *, char *));

#if NDBM
extern char	*ndbm_map_lookup __P((MAP *, char *, char **, int *));
extern void	ndbm_map_store __P((MAP *, char *, char *));
extern void	ndbm_map_close __P((MAP *));
#endif /* NDBM */

extern bool	nis_map_open __P((MAP *, int));
extern char	*nis_map_lookup __P((MAP *, char *, char **, int *));

extern bool	null_map_open __P((MAP *, int));
extern void	null_map_close __P((MAP *));
extern char	*null_map_lookup __P((MAP *, char *, char **, int *));
extern void	null_map_store __P((MAP *, char *, char *));

extern char	*prog_map_lookup __P((MAP *, char *, char **, int *));

extern bool	regex_map_init __P((MAP *, char *));
extern char	*regex_map_lookup __P((MAP *, char *, char **, int *));

extern char	*seq_map_lookup __P((MAP *, char *, char **, int *));
extern void	seq_map_store __P((MAP *, char *, char *));
extern bool	seq_map_parse __P((MAP *, char *));

#if _FFR_SETDEBUG_MAP
extern char	*setdebug_map_lookup __P((MAP *, char *, char **, int *));
#endif
#if _FFR_SETOPT_MAP
extern char	*setopt_map_lookup __P((MAP *, char *, char **, int *));
#endif

#if SOCKETMAP
extern bool	socket_map_open __P((MAP *, int));
extern void	socket_map_close __P((MAP *));
extern char	*socket_map_lookup __P((MAP *, char *, char **, int *));
#endif

extern char	*stab_map_lookup __P((MAP *, char *, char **, int *));
extern void	stab_map_store __P((MAP *, char *, char *));
extern bool	stab_map_open __P((MAP *, int));

extern bool	switch_map_open __P((MAP *, int));

extern bool	syslog_map_parseargs __P((MAP *, char *));
extern char	*syslog_map_lookup __P((MAP *, char *, char **, int *));

extern bool	text_map_open __P((MAP *, int));
extern char	*text_map_lookup __P((MAP *, char *, char **, int *));

extern char	*udb_map_lookup __P((MAP *, char *, char **, int *));

extern bool	user_map_open __P((MAP *, int));
extern char	*user_map_lookup __P((MAP *, char *, char **, int *));

#if CDB
extern bool	cdb_map_open  __P((MAP *, int));
extern char	*cdb_map_lookup __P((MAP *, char *, char **, int *));
extern void	cdb_map_store __P((MAP *, char *, char *));
extern void	cdb_map_close	__P((MAP *));
#endif /* CDB */

#endif /* ! _MAP_H */
