1/* $NetBSD$ */ 2 3/*++ 4/* NAME 5/* int_filt 3 6/* SUMMARY 7/* internal mail filter control 8/* SYNOPSIS 9/* #include <int_filt.h> 10/* 11/* int int_filt_flags(class) 12/* int class; 13/* DESCRIPTION 14/* int_filt_flags() determines the appropriate mail filtering 15/* flags for the cleanup server, depending on the setting of 16/* the internal_mail_filter_classes configuration parameter. 17/* 18/* Specify one of the following: 19/* .IP INT_FILT_MASK_NONE 20/* Mail that must be excluded from inspection (address probes, etc.). 21/* .IP INT_FILT_MASK_NOTIFY 22/* Postmaster notifications from the smtpd(8) and smtp(8) 23/* protocol adapters. 24/* .IP INT_FILT_MASK_BOUNCE 25/* Delivery status notifications from the bounce(8) server. 26/* DIAGNOSTICS 27/* Fatal: invalid mail category name. 28/* LICENSE 29/* .ad 30/* .fi 31/* The Secure Mailer license must be distributed with this software. 32/* AUTHOR(S) 33/* Wietse Venema 34/* IBM T.J. Watson Research 35/* P.O. Box 704 36/* Yorktown Heights, NY 10598, USA 37/*--*/ 38 39/* System library. */ 40 41#include <sys_defs.h> 42 43/* Utility library. */ 44 45#include <name_mask.h> 46#include <msg.h> 47 48/* Global library. */ 49 50#include <mail_params.h> 51#include <cleanup_user.h> 52#include <int_filt.h> 53 54/* int_filt_flags - map mail class to submission flags */ 55 56int int_filt_flags(int class) 57{ 58 static const NAME_MASK table[] = { 59 INT_FILT_CLASS_NOTIFY, INT_FILT_MASK_NOTIFY, 60 INT_FILT_CLASS_BOUNCE, INT_FILT_MASK_BOUNCE, 61 0, 62 }; 63 int filtered_classes = 0; 64 65 if (class && *var_int_filt_classes) { 66 filtered_classes = 67 name_mask(VAR_INT_FILT_CLASSES, table, var_int_filt_classes); 68 if (filtered_classes == 0) 69 msg_warn("%s: bad input: %s", VAR_INT_FILT_CLASSES, 70 var_int_filt_classes); 71 if (filtered_classes & class) 72 return (CLEANUP_FLAG_FILTER | CLEANUP_FLAG_MILTER); 73 } 74 return (0); 75} 76