Home | History | Annotate | Line # | Download | only in trivial-rewrite
      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