xref: /netbsd-src/external/ibm-public/postfix/dist/src/global/ext_prop.c (revision e89934bbf778a6d6d6894877c4da59d0c7835b0f)
1 /*	$NetBSD: ext_prop.c,v 1.2 2017/02/14 01:16:45 christos Exp $	*/
2 
3 /*++
4 /* NAME
5 /*	ext_prop 3
6 /* SUMMARY
7 /*	address extension propagation control
8 /* SYNOPSIS
9 /*	#include <ext_prop.h>
10 /*
11 /*	int	ext_prop_mask(param_name, pattern)
12 /*	const char *param_name;
13 /*	const char *pattern;
14 /* DESCRIPTION
15 /*	This module controls address extension propagation.
16 /*
17 /*	ext_prop_mask() takes a comma-separated list of names and
18 /*	computes the corresponding mask. The following names are
19 /*	recognized in \fBpattern\fR, with the corresponding bit mask
20 /*	given in parentheses:
21 /* .IP "canonical (EXT_PROP_CANONICAL)"
22 /*	Propagate unmatched address extensions to the right-hand side
23 /*	of canonical table entries (not: regular expressions).
24 /* .IP "virtual (EXT_PROP_VIRTUAL)"
25 /*	Propagate unmatched address extensions to the right-hand side
26 /*	of virtual table entries (not: regular expressions).
27 /* .IP "alias (EXT_PROP_ALIAS)"
28 /*	Propagate unmatched address extensions to the right-hand side
29 /*	of alias database entries.
30 /* .IP "forward (EXT_PROP_FORWARD)"
31 /*	Propagate unmatched address extensions to the right-hand side
32 /*	of .forward file entries.
33 /* .IP "include (EXT_PROP_INCLUDE)"
34 /*	Propagate unmatched address extensions to the right-hand side
35 /*	of :include: file entries.
36 /* .IP "generic (EXT_PROP_GENERIC)"
37 /*	Propagate unmatched address extensions to the right-hand side
38 /*	of smtp_generic_maps entries.
39 /* DIAGNOSTICS
40 /*	Panic: inappropriate use.
41 /* LICENSE
42 /* .ad
43 /* .fi
44 /*	The Secure Mailer license must be distributed with this software.
45 /* AUTHOR(S)
46 /*	Wietse Venema
47 /*	IBM T.J. Watson Research
48 /*	P.O. Box 704
49 /*	Yorktown Heights, NY 10598, USA
50 /*--*/
51 
52 /* System library. */
53 
54 #include <sys_defs.h>
55 
56 /* Utility library. */
57 
58 #include <name_mask.h>
59 
60 /* Global library. */
61 
62 #include <mail_params.h>
63 #include <ext_prop.h>
64 
65 /* ext_prop_mask - compute extension propagation mask */
66 
ext_prop_mask(const char * param_name,const char * pattern)67 int     ext_prop_mask(const char *param_name, const char *pattern)
68 {
69     static const NAME_MASK table[] = {
70 	"canonical", EXT_PROP_CANONICAL,
71 	"virtual", EXT_PROP_VIRTUAL,
72 	"alias", EXT_PROP_ALIAS,
73 	"forward", EXT_PROP_FORWARD,
74 	"include", EXT_PROP_INCLUDE,
75 	"generic", EXT_PROP_GENERIC,
76 	0,
77     };
78 
79     return (name_mask(param_name, table, pattern));
80 }
81