1/* $NetBSD$ */ 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 */ 28int server_flags; 29 30 /* 31 * rewrite.c 32 */ 33typedef 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 42extern void rewrite_init(void); 43extern int rewrite_proto(VSTREAM *); 44extern void rewrite_addr(RWR_CONTEXT *, char *, VSTRING *); 45extern void rewrite_tree(RWR_CONTEXT *, TOK822 *); 46extern RWR_CONTEXT local_context; 47extern RWR_CONTEXT inval_context; 48 49 /* 50 * resolve.c 51 */ 52typedef 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 76extern void resolve_init(void); 77extern int resolve_proto(RES_CONTEXT *, VSTREAM *); 78 79/* LICENSE 80/* .ad 81/* .fi 82/* The Secure Mailer license must be distributed with this software. 83/* AUTHOR(S) 84/* Wietse Venema 85/* IBM T.J. Watson Research 86/* P.O. Box 704 87/* Yorktown Heights, NY 10598, USA 88/*--*/ 89