Postfix3.3.1
mail_addr_find.h
[詳解]
1 #ifndef _MAIL_ADDR_FIND_H_INCLUDED_
2 #define _MAIL_ADDR_FIND_H_INCLUDED_
3 
4 /*++
5 /* NAME
6 /* mail_addr_find 3h
7 /* SUMMARY
8 /* generic address-based lookup
9 /* SYNOPSIS
10 /* #include <mail_addr_find.h>
11 /* DESCRIPTION
12 /* .nf
13 
14  /*
15  * Global library.
16  */
17 #include <mail_addr_form.h>
18 #include <maps.h>
19 
20  /*
21  * External interface.
22  */
23 extern const char *mail_addr_find_opt(MAPS *, const char *, char **,
24  int, int, int, int);
25 
26 #define MA_FIND_FULL (1<<0) /* localpart+ext@domain */
27 #define MA_FIND_NOEXT (1<<1) /* localpart@domain */
28 #define MA_FIND_LOCALPART_IF_LOCAL \
29  (1<<2) /* localpart (maybe localpart+ext) */
30 #define MA_FIND_LOCALPART_AT_IF_LOCAL \
31  (1<<3) /* ditto, with @ at end */
32 #define MA_FIND_AT_DOMAIN (1<<4) /* @domain */
33 #define MA_FIND_DOMAIN (1<<5) /* domain */
34 #define MA_FIND_PDMS (1<<6) /* parent matches subdomain */
35 #define MA_FIND_PDDMDS (1<<7) /* parent matches dot-subdomain */
36 #define MA_FIND_LOCALPART_AT \
37  (1<<8) /* localpart@ (maybe localpart+ext@) */
38 
39 #define MA_FIND_DEFAULT (MA_FIND_FULL | MA_FIND_NOEXT \
40  | MA_FIND_LOCALPART_IF_LOCAL \
41  | MA_FIND_AT_DOMAIN)
42 
43  /* The least-overhead form. */
44 #define mail_addr_find_int_to_ext(maps, address, extension) \
45  mail_addr_find_opt((maps), (address), (extension), \
46  MA_FORM_INTERNAL, MA_FORM_EXTERNAL, \
47  MA_FORM_EXTERNAL, MA_FIND_DEFAULT)
48 
49  /* The legacy forms. */
50 #define MA_FIND_FORM_LEGACY \
51  MA_FORM_INTERNAL, MA_FORM_EXTERNAL_FIRST, \
52  MA_FORM_EXTERNAL
53 
54 #define mail_addr_find_strategy(maps, address, extension, strategy) \
55  mail_addr_find_opt((maps), (address), (extension), \
56  MA_FIND_FORM_LEGACY, (strategy))
57 
58 #define mail_addr_find(maps, address, extension) \
59  mail_addr_find_strategy((maps), (address), (extension), \
60  MA_FIND_DEFAULT)
61 
62 #define mail_addr_find_to_internal(maps, address, extension) \
63  mail_addr_find_opt((maps), (address), (extension), \
64  MA_FIND_FORM_LEGACY, MA_FIND_DEFAULT)
65 
66 /* LICENSE
67 /* .ad
68 /* .fi
69 /* The Secure Mailer license must be distributed with this software.
70 /* AUTHOR(S)
71 /* Wietse Venema
72 /* IBM T.J. Watson Research
73 /* P.O. Box 704
74 /* Yorktown Heights, NY 10598, USA
75 /*
76 /* Wietse Venema
77 /* Google, Inc.
78 /* 111 8th Avenue
79 /* New York, NY 10011, USA
80 /*--*/
81 
82 #endif
Definition: maps.h:22
const char * mail_addr_find_opt(MAPS *, const char *, char **, int, int, int, int)