1 /* $NetBSD: ext_prop.c,v 1.1.1.1 2009/06/23 10:08:46 tron 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 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