#ifndef _MAIL_ADDR_FIND_H_INCLUDED_
#define _MAIL_ADDR_FIND_H_INCLUDED_
#include <mail_addr_form.h>
#include <maps.h>
extern const char *mail_addr_find_opt(MAPS *, const char *, char **,
int, int, int, int);
#define MA_FIND_FULL (1<<0)
#define MA_FIND_NOEXT (1<<1)
#define MA_FIND_LOCALPART_IF_LOCAL \
(1<<2)
#define MA_FIND_LOCALPART_AT_IF_LOCAL \
(1<<3)
#define MA_FIND_AT_DOMAIN (1<<4)
#define MA_FIND_DOMAIN (1<<5)
#define MA_FIND_PDMS (1<<6)
#define MA_FIND_PDDMDS (1<<7)
#define MA_FIND_LOCALPART_AT \
(1<<8)
#define MA_FIND_DEFAULT (MA_FIND_FULL | MA_FIND_NOEXT \
| MA_FIND_LOCALPART_IF_LOCAL \
| MA_FIND_AT_DOMAIN)
#define mail_addr_find_int_to_ext(maps, address, extension) \
mail_addr_find_opt((maps), (address), (extension), \
MA_FORM_INTERNAL, MA_FORM_EXTERNAL, \
MA_FORM_EXTERNAL, MA_FIND_DEFAULT)
#define MA_FIND_FORM_LEGACY \
MA_FORM_INTERNAL, MA_FORM_EXTERNAL_FIRST, \
MA_FORM_EXTERNAL
#define mail_addr_find_strategy(maps, address, extension, strategy) \
mail_addr_find_opt((maps), (address), (extension), \
MA_FIND_FORM_LEGACY, (strategy))
#define mail_addr_find(maps, address, extension) \
mail_addr_find_strategy((maps), (address), (extension), \
MA_FIND_DEFAULT)
#define mail_addr_find_to_internal(maps, address, extension) \
mail_addr_find_opt((maps), (address), (extension), \
MA_FIND_FORM_LEGACY, MA_FIND_DEFAULT)
#endif