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