1 /* $NetBSD: trivial-rewrite.h,v 1.3 2020/03/18 19:05:21 christos Exp $ */ 2 3 /*++ 4 /* NAME 5 /* trivial-rewrite 3h 6 /* SUMMARY 7 /* mail address rewriter and resolver 8 /* SYNOPSIS 9 /* #include "trivial-rewrite.h" 10 /* DESCRIPTION 11 /* .nf 12 13 /* 14 * Utility library. 15 */ 16 #include <vstring.h> 17 #include <vstream.h> 18 19 /* 20 * Global library. 21 */ 22 #include <tok822.h> 23 #include <maps.h> 24 25 /* 26 * Connection management. 27 */ 28 extern int server_flags; 29 30 /* 31 * rewrite.c 32 */ 33 typedef struct { 34 const char *origin_name; /* name of variable */ 35 char **origin; /* default origin */ 36 const char *domain_name; /* name of variable */ 37 char **domain; /* default domain */ 38 } RWR_CONTEXT; 39 40 #define REW_PARAM_VALUE(x) (*(x)) /* make it easy to do it right */ 41 42 extern void rewrite_init(void); 43 extern int rewrite_proto(VSTREAM *); 44 extern void rewrite_addr(RWR_CONTEXT *, char *, VSTRING *); 45 extern void rewrite_tree(RWR_CONTEXT *, TOK822 *); 46 extern RWR_CONTEXT local_context; 47 extern RWR_CONTEXT inval_context; 48 49 /* 50 * resolve.c 51 */ 52 typedef struct { 53 const char *local_transport_name; /* name of variable */ 54 char **local_transport; /* local transport:nexthop */ 55 const char *virt_transport_name; /* name of variable */ 56 char **virt_transport; /* virtual mailbox transport:nexthop */ 57 const char *relay_transport_name; /* name of variable */ 58 char **relay_transport; /* relay transport:nexthop */ 59 const char *def_transport_name; /* name of variable */ 60 char **def_transport; /* default transport:nexthop */ 61 const char *snd_def_xp_maps_name; /* name of variable */ 62 char **snd_def_xp_maps; /* maptype:mapname */ 63 MAPS *snd_def_xp_info; /* handle */ 64 const char *relayhost_name; /* name of variable */ 65 char **relayhost; /* for relay and default transport */ 66 const char *snd_relay_maps_name; /* name of variable */ 67 char **snd_relay_maps; /* maptype:mapname */ 68 MAPS *snd_relay_info; /* handle */ 69 const char *transport_maps_name; /* name of variable */ 70 char **transport_maps; /* maptype:mapname */ 71 struct TRANSPORT_INFO *transport_info; /* handle */ 72 } RES_CONTEXT; 73 74 #define RES_PARAM_VALUE(x) (*(x)) /* make it easy to do it right */ 75 76 extern void resolve_init(void); 77 extern int resolve_proto(RES_CONTEXT *, VSTREAM *); 78 extern int resolve_class(const char *); 79 80 /* LICENSE 81 /* .ad 82 /* .fi 83 /* The Secure Mailer license must be distributed with this software. 84 /* AUTHOR(S) 85 /* Wietse Venema 86 /* IBM T.J. Watson Research 87 /* P.O. Box 704 88 /* Yorktown Heights, NY 10598, USA 89 /* 90 /* Wietse Venema 91 /* Google, Inc. 92 /* 111 8th Avenue 93 /* New York, NY 10011, USA 94 /*--*/ 95