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