ze-filter  (ze-filter-0.8.0-develop-180218)
cfc-defs.h
Go to the documentation of this file.
1 /*
2  *
3  * ze-filter - Mail Server Filter for sendmail
4  *
5  * Copyright (c) 2001-2018 - Jose-Marcio Martins da Cruz
6  *
7  * Auteur : Jose Marcio Martins da Cruz
8  * jose.marcio.mc@gmail.com
9  *
10  * Historique :
11  * Creation : janvier 2005
12  *
13  * This program is free software, but with restricted license :
14  *
15  * - ze-filter is distributed only to registered users
16  * - ze-filter license is available only non-commercial applications,
17  * this means, you can use ze-filter if you make no profit with it.
18  * - redistribution of ze-filter in any way : binary, source in any
19  * media, is forbidden
20  *
21  * This program is distributed in the hope that it will be useful,
22  * but WITHOUT ANY WARRANTY; without even the implied warranty of
23  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
24  *
25  * More details about ze-filter license can be found at ze-filter
26  * web site : http://foss.jose-marcio.org
27  */
28 
29 #ifndef __ZE_CFC_DEFS_H
30 
36 static char *ENUM_ACTION[] = {
37  "OK",
38  "REJECT",
39  "NOTIFY",
40  "DISCARD",
41  "X-HEADER",
42  NULL};
43 
44 static char *ENUM_CRYPT[] = {
45  "PLAIN",
46  "MD5",
47  "SHA1",
48  NULL};
49 
50 static char *ENUM_CTRL_ACCESS[] = {
51  "NONE",
52  "ACCESS",
53  NULL};
54 
55 static char *ENUM_DISABLE_ENABLE[] = {
56  "DISABLE",
57  "ENABLE",
58  NULL};
59 
60 static char *ENUM_GREY_MODE[] = {
61  "STANDALONE",
62  "CLIENT",
63  NULL};
64 
65 static char *ENUM_HOSTNAME[] = {
66  "SYSTEM",
67  "SENDMAIL",
68  "OTHER",
69  NULL};
70 
71 static char *ENUM_NO_YES[] = {
72  "NO",
73  "YES",
74  NULL};
75 
76 static char *ENUM_POLICY_CONFLICT[] = {
77  "DEFAULT",
78  "ONE_WIN",
79  "MAJORITY_WIN",
80  NULL};
81 
82 static char *ENUM_PRESENCE[] = {
83  "SHOW",
84  "HIDE",
85  NULL};
86 
87 static char *ENUM_PROTOCOL[] = {
88  "INTERNAL",
89  "CLAMAV",
90  NULL};
91 
92 static char *ENUM_REJECT[] = {
93  "OK",
94  "REJECT",
95  "TEMPFAIL",
96  NULL};
97 
98 static char *ENUM_SENDER[] = {
99  "SENDER",
100  "OTHER",
101  NULL};
102 
103 static char *ENUM_SUBJECT[] = {
104  "SUBJECT",
105  "OTHER",
106  NULL};
107 
108 
109 /*****************************************************************************
110  * *
111  * *
112  *****************************************************************************/
113 static void
114 cf_define ()
115 {
116  cf_add_id_str (CF_VERSION, STRING(VERSION), 256, "1.12.0");
117  cf_add_id_str (CF_MYSELF, STRING(MYSELF), 1024, "127.0.0.1 HOSTNAME");
118  cf_add_id_enum (CF_ZE_HOSTNAME, STRING(ZE_HOSTNAME), ENUM_HOSTNAME, "SYSTEM");
119  cf_add_id_enum (CF_PRESENCE, STRING(PRESENCE), ENUM_PRESENCE, "SHOW");
120  cf_add_id_enum (CF_FOOTER, STRING(FOOTER), ENUM_PRESENCE, "SHOW");
121  cf_add_id_str (CF_FILTER_URL, STRING(FILTER_URL), 256, "http : // foss dot jose-marcio dot org");
122  cf_add_id_str (CF_POLICY_URL, STRING(POLICY_URL), 256, "");
123  cf_add_id_str (CF_DAEMON_FILTER_DISABLE, STRING(DAEMON_FILTER_DISABLE), 256, "");
124  cf_add_id_str (CF_USER, STRING(USER), 256, "ze-filter");
125  cf_add_id_str (CF_GROUP, STRING(GROUP), 256, "ze-filter");
126  cf_add_id_str (CF_FILE_DESCRIPTORS, STRING(FILE_DESCRIPTORS), 32, "MAX");
127  cf_add_id_int (CF_FD_FREE_SOFT_LIMIT, STRING(FD_FREE_SOFT_LIMIT), "100");
128  cf_add_id_int (CF_FD_FREE_HARD_LIMIT, STRING(FD_FREE_HARD_LIMIT), "50");
129  cf_add_id_enum (CF_USE_SELECT_LIMIT, STRING(USE_SELECT_LIMIT), ENUM_NO_YES, "YES");
130  cf_add_id_int (CF_CPU_IDLE_SOFT_LIMIT, STRING(CPU_IDLE_SOFT_LIMIT), "0");
131  cf_add_id_int (CF_CPU_IDLE_HARD_LIMIT, STRING(CPU_IDLE_HARD_LIMIT), "0");
132  cf_add_id_int (CF_MAX_OPEN_CONNECTIONS, STRING(MAX_OPEN_CONNECTIONS), "500");
133  cf_add_id_str (CF_SOCKET, STRING(SOCKET), 256, ZE_SMSOCKFILE);
134  cf_add_id_int (CF_SM_TIMEOUT, STRING(SM_TIMEOUT), "600s");
135  cf_add_id_enum (CF_CTRL_CHANNEL_ENABLE, STRING(CTRL_CHANNEL_ENABLE), ENUM_NO_YES, "YES");
136  cf_add_id_str (CF_CTRL_SOCKET, STRING(CTRL_SOCKET), 256, "inet:2010@127.0.0.1");
137  cf_add_id_enum (CF_CTRL_ACCESS, STRING(CTRL_ACCESS), ENUM_CTRL_ACCESS, "NONE");
138  cf_add_id_str (CF_CONFDIR, STRING(CONFDIR), 256, "/etc/ze-filter");
139  cf_add_id_str (CF_ERROR_MSG_FILE, STRING(ERROR_MSG_FILE), 256, "ze-error-msg");
140  cf_add_id_int (CF_AUTO_RELOAD_TABLES, STRING(AUTO_RELOAD_TABLES), "3600s");
141  cf_add_id_str (CF_MODULES_CF, STRING(MODULES_CF), 256, "ze-modules");
142  cf_add_id_str (CF_LOG_FACILITY, STRING(LOG_FACILITY), 256, "local5");
144  cf_add_id_enum (CF_LOG_SEVERITY, STRING(LOG_SEVERITY), ENUM_NO_YES, "NO");
145  cf_add_id_enum (CF_CLUSTER, STRING(CLUSTER), ENUM_NO_YES, "NO");
146  cf_add_id_enum (CF_LOG_ATTACHMENTS, STRING(LOG_ATTACHMENTS), ENUM_NO_YES, "NO");
147  cf_add_id_enum (CF_LOG_THROTTLE, STRING(LOG_THROTTLE), ENUM_NO_YES, "YES");
148  cf_add_id_enum (CF_LOG_LOAD, STRING(LOG_LOAD), ENUM_NO_YES, "YES");
149  cf_add_id_enum (CF_LOG_GREY_CLEANING, STRING(LOG_GREY_CLEANING), ENUM_NO_YES, "NO");
150  cf_add_id_enum (CF_DUMP_COUNTERS, STRING(DUMP_COUNTERS), ENUM_NO_YES, "YES");
151  cf_add_id_int (CF_STATS_INTERVAL, STRING(STATS_INTERVAL), "300");
152  cf_add_id_int (CF_HISTORY_ENTRIES, STRING(HISTORY_ENTRIES), "256");
153  cf_add_id_str (CF_WORKROOT, STRING(WORKROOT), 256, ZE_WORKROOT);
154  cf_add_id_str (CF_WORKDIR, STRING(WORKDIR), 256, ZE_WORKDIR);
155  cf_add_id_str (CF_SPOOLDIR, STRING(SPOOLDIR), 256, ZE_SPOOLDIR);
156  cf_add_id_str (CF_PID_FILE, STRING(PID_FILE), 256, ZE_PID_FILE);
157  cf_add_id_str (CF_STATS_FILE, STRING(STATS_FILE), 256, ZE_STATS_FILE);
158  cf_add_id_int (CF_CLEANUP_INTERVAL, STRING(CLEANUP_INTERVAL), "6h");
159  cf_add_id_int (CF_QUARANTINE_LIFETIME, STRING(QUARANTINE_LIFETIME), "1d");
160  cf_add_id_enum (CF_QUARANTINE_ADD_FROM_LINE, STRING(QUARANTINE_ADD_FROM_LINE), ENUM_NO_YES, "YES");
161  cf_add_id_str (CF_QUARANTINE_LOG_FILE, STRING(QUARANTINE_LOG_FILE), 256, ZE_QUARANTINE_LOG);
162  cf_add_id_enum (CF_ARCHIVE, STRING(ARCHIVE), ENUM_NO_YES, "NO");
163  cf_add_id_str (CF_MODDIR, STRING(MODDIR), 256, "/usr/lib/ze-filter");
164  cf_add_id_str (CF_WDBDIR, STRING(WDBDIR), 256, ZE_WDBDIR);
165  cf_add_id_str (CF_CDBDIR, STRING(CDBDIR), 256, ZE_CDBDIR);
166  cf_add_id_int (CF_DB_CACHE_SIZE, STRING(DB_CACHE_SIZE), "32M");
167  cf_add_id_str (CF_DB_POLICY, STRING(DB_POLICY), 256, "ze-policy.db");
168  cf_add_id_enum (CF_POLICY_CONFLICT, STRING(POLICY_CONFLICT), ENUM_POLICY_CONFLICT, "DEFAULT");
169  cf_add_id_str (CF_FROM_PASS_TOKEN, STRING(FROM_PASS_TOKEN), 256, "");
170  cf_add_id_str (CF_TO_PASS_TOKEN, STRING(TO_PASS_TOKEN), 256, "");
171  cf_add_id_enum (CF_RESOLVE_CACHE_ENABLE, STRING(RESOLVE_CACHE_ENABLE), ENUM_NO_YES, "YES");
172  cf_add_id_int (CF_RESOLVE_CACHE_SYNC, STRING(RESOLVE_CACHE_SYNC), "1m");
173  cf_add_id_int (CF_RESOLVE_CACHE_CHECK, STRING(RESOLVE_CACHE_CHECK), "1h");
174  cf_add_id_int (CF_RESOLVE_CACHE_EXPIRE, STRING(RESOLVE_CACHE_EXPIRE), "2d");
175  cf_add_id_enum (CF_NOTIFY_SENDER, STRING(NOTIFY_SENDER), ENUM_NO_YES, "NO");
176  cf_add_id_enum (CF_NOTIFY_RCPT, STRING(NOTIFY_RCPT), ENUM_NO_YES, "YES");
177  cf_add_id_enum (CF_ZE_SENDER, STRING(ZE_SENDER), ENUM_SENDER, "SENDER");
178  cf_add_id_enum (CF_ZE_SUBJECT, STRING(ZE_SUBJECT), ENUM_SUBJECT, "SUBJECT");
179  cf_add_id_enum (CF_XFILES, STRING(XFILES), ENUM_ACTION, "OK");
180  cf_add_id_str (CF_XFILES_FILE, STRING(XFILES_FILE), 256, "ze-xfiles");
181  cf_add_id_enum (CF_XFILE_SAVE_MSG, STRING(XFILE_SAVE_MSG), ENUM_NO_YES, "YES");
182  cf_add_id_str (CF_XFILE_SUBJECT_TAG, STRING(XFILE_SUBJECT_TAG), 256, "");
183  cf_add_id_str (CF_XFILES_LOG_FILE, STRING(XFILES_LOG_FILE), 256, ZE_XFILES_LOG);
184  cf_add_id_enum (CF_SCANNER_ACTION, STRING(SCANNER_ACTION), ENUM_ACTION, "OK");
185  cf_add_id_str (CF_SCANNER_SOCK, STRING(SCANNER_SOCK), 256, "inet:2002@localhost");
186  cf_add_id_enum (CF_SCANNER_PROTOCOL, STRING(SCANNER_PROTOCOL), ENUM_PROTOCOL, "CLAMAV");
187  cf_add_id_int (CF_SCANNER_TIMEOUT, STRING(SCANNER_TIMEOUT), "15s");
188  cf_add_id_enum (CF_SCANNER_REJECT_ON_ERROR, STRING(SCANNER_REJECT_ON_ERROR), ENUM_NO_YES, "NO");
189  cf_add_id_int (CF_SCANNER_MAX_MSG_SIZE, STRING(SCANNER_MAX_MSG_SIZE), "100K");
190  cf_add_id_enum (CF_SCANNER_SAVE, STRING(SCANNER_SAVE), ENUM_NO_YES, "YES");
191  cf_add_id_str (CF_VIRUS_LOG_FILE, STRING(VIRUS_LOG_FILE), 256, ZE_VIRUS_LOG);
192  cf_add_id_enum (CF_BAYESIAN_FILTER, STRING(BAYESIAN_FILTER), ENUM_NO_YES, "NO");
193  cf_add_id_int (CF_BAYES_MAX_MESSAGE_SIZE, STRING(BAYES_MAX_MESSAGE_SIZE), "100K");
194  cf_add_id_int (CF_BAYES_MAX_PART_SIZE, STRING(BAYES_MAX_PART_SIZE), "30K");
195  cf_add_id_int (CF_BAYES_HAM_SPAM_RATIO, STRING(BAYES_HAM_SPAM_RATIO), "1000");
196  cf_add_id_int (CF_BAYES_NB_TOKENS, STRING(BAYES_NB_TOKENS), "48");
197  cf_add_id_int (CF_BAYES_UNKNOWN_TOKEN_PROB, STRING(BAYES_UNKNOWN_TOKEN_PROB), "500");
198  cf_add_id_double (CF_ACTIVE_LEARNING_MARGIN, STRING(ACTIVE_LEARNING_MARGIN), "0.35");
199  cf_add_id_str (CF_DB_BAYES, STRING(DB_BAYES), 256, "ze-bayes.db");
200  cf_add_id_enum (CF_SPAM_URLBL, STRING(SPAM_URLBL), ENUM_NO_YES, "NO");
201  cf_add_id_str (CF_DB_URLBL, STRING(DB_URLBL), 1024, "ze-urlbl.db");
202  cf_add_id_str (CF_DNS_URLBL, STRING(DNS_URLBL), 1024, "ze-tables:DNS-URLBL");
203  cf_add_id_enum (CF_SPAM_REGEX, STRING(SPAM_REGEX), ENUM_NO_YES, "NO");
204  cf_add_id_str (CF_REGEX_FILE, STRING(REGEX_FILE), 256, "ze-regex");
205  cf_add_id_int (CF_REGEX_MAX_SCORE, STRING(REGEX_MAX_SCORE), "50");
206  cf_add_id_int (CF_SPAM_REGEX_MAX_MSG_SIZE, STRING(SPAM_REGEX_MAX_MSG_SIZE), "40000");
207  cf_add_id_int (CF_SPAM_REGEX_MAX_MIME_SIZE, STRING(SPAM_REGEX_MAX_MIME_SIZE), "15000");
208  cf_add_id_enum (CF_DUMP_FOUND_REGEX, STRING(DUMP_FOUND_REGEX), ENUM_NO_YES, "YES");
209  cf_add_id_str (CF_REGEX_LOG_FILE, STRING(REGEX_LOG_FILE), 256, ZE_REGEX_LOG);
210  cf_add_id_enum (CF_SPAM_ORACLE, STRING(SPAM_ORACLE), ENUM_NO_YES, "NO");
211  cf_add_id_str (CF_ORACLE_SCORES_FILE, STRING(ORACLE_SCORES_FILE), 256, "ze-oracle:ORACLE-SCORES");
212  cf_add_id_str (CF_ORACLE_DATA_FILE, STRING(ORACLE_DATA_FILE), 256, "ze-oracle:ORACLE-DATA");
213  cf_add_id_int (CF_LOG_LEVEL_ORACLE, STRING(LOG_LEVEL_ORACLE), "1");
214  cf_add_id_str (CF_ORACLE_STATS_FILE, STRING(ORACLE_STATS_FILE), 256, "oracle-stats.log");
215  cf_add_id_str (CF_ORACLE_COUNTERS_FILE, STRING(ORACLE_COUNTERS_FILE), 256, "oracle-counters.log");
216  cf_add_id_enum (CF_SCORE_ON_SUBJECT, STRING(SCORE_ON_SUBJECT), ENUM_NO_YES, "NO");
217  cf_add_id_str (CF_SCORE_ON_SUBJECT_TAG, STRING(SCORE_ON_SUBJECT_TAG), 256, "");
218  cf_add_id_str (CF_XSTATUS_HEADER, STRING(XSTATUS_HEADER), 256, "X-ze-filter-Status");
219  cf_add_id_str (CF_XSTATUS_HEADER_HI_CONDITION, STRING(XSTATUS_HEADER_HI_CONDITION), 512, "score > 0.75");
220  cf_add_id_str (CF_XSTATUS_HEADER_LO_CONDITION, STRING(XSTATUS_HEADER_LO_CONDITION), 512, "score > 0.65");
221  cf_add_id_str (CF_XSTATUS_HEADER_UNSURE_CONDITION, STRING(XSTATUS_HEADER_UNSURE_CONDITION), 512, "score > 0.25");
222  cf_add_id_str (CF_XSTATUS_HEADER_HAM_CONDITION, STRING(XSTATUS_HEADER_HAM_CONDITION), 512, "score < 0.25");
223  cf_add_id_str (CF_XSTATUS_REJECT_CONDITION, STRING(XSTATUS_REJECT_CONDITION), 512, "");
224  cf_add_id_enum (CF_XSTATUS_REJECT_ONLY_UNKNOWN, STRING(XSTATUS_REJECT_ONLY_UNKNOWN), ENUM_NO_YES, "YES");
225  cf_add_id_str (CF_XSTATUS_QUARANTINE_CONDITION, STRING(XSTATUS_QUARANTINE_CONDITION), 512, "");
226  cf_add_id_str (CF_REMOVE_HEADERS, STRING(REMOVE_HEADERS), 512, "NONE");
227  cf_add_id_str (CF_REMOVE_SCORES, STRING(REMOVE_SCORES), 512, "NONE");
228  cf_add_id_str (CF_DNS_IPRBWL, STRING(DNS_IPRBWL), 1024, "ze-tables:DNS-IP-RBWL");
229  cf_add_id_enum (CF_CHECK_CONN_RATE, STRING(CHECK_CONN_RATE), ENUM_NO_YES, "NO");
230  cf_add_id_int (CF_MAX_CONN_RATE, STRING(MAX_CONN_RATE), "15");
231  cf_add_id_enum (CF_CHECK_OPEN_CONNECTIONS, STRING(CHECK_OPEN_CONNECTIONS), ENUM_NO_YES, "NO");
232  cf_add_id_int (CF_MAX_CONN_OPEN, STRING(MAX_CONN_OPEN), "10");
233  cf_add_id_enum (CF_CHECK_EMPTY_CONNECTIONS, STRING(CHECK_EMPTY_CONNECTIONS), ENUM_NO_YES, "NO");
234  cf_add_id_int (CF_MAX_EMPTY_CONN, STRING(MAX_EMPTY_CONN), "20");
235  cf_add_id_enum (CF_DELAY_CHECKS, STRING(DELAY_CHECKS), ENUM_NO_YES, "NO");
236  cf_add_id_enum (CF_CHECK_BADRCPTS, STRING(CHECK_BADRCPTS), ENUM_NO_YES, "NO");
237  cf_add_id_int (CF_MAX_BADRCPTS, STRING(MAX_BADRCPTS), "10");
238  cf_add_id_enum (CF_CHECK_RCPT_ACCESS, STRING(CHECK_RCPT_ACCESS), ENUM_NO_YES, "NO");
239  cf_add_id_str (CF_DB_RCPT, STRING(DB_RCPT), 256, "ze-rcpt.db");
240  cf_add_id_enum (CF_SPAMTRAP_RESULT, STRING(SPAMTRAP_RESULT), ENUM_REJECT, "OK");
241  cf_add_id_enum (CF_CHECK_SPAMTRAP_HISTORY, STRING(CHECK_SPAMTRAP_HISTORY), ENUM_NO_YES, "NO");
242  cf_add_id_enum (CF_CHECK_RCPT_RATE, STRING(CHECK_RCPT_RATE), ENUM_NO_YES, "NO");
243  cf_add_id_int (CF_MAX_RCPT_RATE, STRING(MAX_RCPT_RATE), "100");
244  cf_add_id_enum (CF_CHECK_NB_RCPT, STRING(CHECK_NB_RCPT), ENUM_NO_YES, "NO");
245  cf_add_id_int (CF_MAX_RCPT, STRING(MAX_RCPT), "200");
246  cf_add_id_enum (CF_CHECK_MSG_RATE, STRING(CHECK_MSG_RATE), ENUM_NO_YES, "NO");
247  cf_add_id_int (CF_MAX_MSG_RATE, STRING(MAX_MSG_RATE), "100");
248  cf_add_id_enum (CF_CHECK_NB_MSGS, STRING(CHECK_NB_MSGS), ENUM_NO_YES, "NO");
249  cf_add_id_int (CF_MAX_MSGS, STRING(MAX_MSGS), "100");
250  cf_add_id_enum (CF_CHECK_FROM_RCPT_RATE, STRING(CHECK_FROM_RCPT_RATE), ENUM_NO_YES, "NO");
251  cf_add_id_int (CF_MAX_FROM_RCPT_RATE, STRING(MAX_FROM_RCPT_RATE), "100");
252  cf_add_id_enum (CF_CHECK_NB_FROM_RCPT, STRING(CHECK_NB_FROM_RCPT), ENUM_NO_YES, "NO");
253  cf_add_id_int (CF_MAX_FROM_RCPT, STRING(MAX_FROM_RCPT), "200");
254  cf_add_id_enum (CF_CHECK_FROM_MSG_RATE, STRING(CHECK_FROM_MSG_RATE), ENUM_NO_YES, "NO");
255  cf_add_id_int (CF_MAX_FROM_MSG_RATE, STRING(MAX_FROM_MSG_RATE), "100");
256  cf_add_id_enum (CF_CHECK_FROM_NB_MSGS, STRING(CHECK_FROM_NB_MSGS), ENUM_NO_YES, "NO");
257  cf_add_id_int (CF_MAX_FROM_MSGS, STRING(MAX_FROM_MSGS), "100");
258  cf_add_id_enum (CF_REJECT_BADEHLO, STRING(REJECT_BADEHLO), ENUM_NO_YES, "NO");
259  cf_add_id_str (CF_BADEHLO_CHECKS, STRING(BADEHLO_CHECKS), 256, "All");
260  cf_add_id_enum (CF_REJECT_BAD_NULL_SENDER, STRING(REJECT_BAD_NULL_SENDER), ENUM_NO_YES, "NO");
261  cf_add_id_enum (CF_CHECK_BAD_SENDER_MX, STRING(CHECK_BAD_SENDER_MX), ENUM_NO_YES, "NO");
262  cf_add_id_str (CF_DEFAULT_BAD_MX_REPLY, STRING(DEFAULT_BAD_MX_REPLY), 256, "421:4.5.1:Unreacheable domain. Try again later !");
263  cf_add_id_enum (CF_REJECT_DATE_IN_FUTURE, STRING(REJECT_DATE_IN_FUTURE), ENUM_NO_YES, "NO");
264  cf_add_id_enum (CF_REJECT_DATE_IN_PAST, STRING(REJECT_DATE_IN_PAST), ENUM_NO_YES, "NO");
265  cf_add_id_enum (CF_REJECT_SHORT_BODIES, STRING(REJECT_SHORT_BODIES), ENUM_NO_YES, "NO");
266  cf_add_id_int (CF_MIN_BODY_LENGTH, STRING(MIN_BODY_LENGTH), "10");
267  cf_add_id_enum (CF_DROP_DELIVERY_NOTIFICATION_REQUEST, STRING(DROP_DELIVERY_NOTIFICATION_REQUEST), ENUM_NO_YES, "NO");
268  cf_add_id_enum (CF_ENCODING_BINARY, STRING(ENCODING_BINARY), ENUM_REJECT, "OK");
269  cf_add_id_enum (CF_NO_TO_HEADERS, STRING(NO_TO_HEADERS), ENUM_REJECT, "OK");
270  cf_add_id_enum (CF_NO_FROM_HEADERS, STRING(NO_FROM_HEADERS), ENUM_REJECT, "OK");
271  cf_add_id_enum (CF_NO_HEADERS, STRING(NO_HEADERS), ENUM_REJECT, "OK");
272  cf_add_id_enum (CF_CHECK_RESOLVE_FAIL, STRING(CHECK_RESOLVE_FAIL), ENUM_NO_YES, "NO");
273  cf_add_id_enum (CF_CHECK_RESOLVE_FORGED, STRING(CHECK_RESOLVE_FORGED), ENUM_NO_YES, "NO");
274  cf_add_id_int (CF_MAX_BAD_RESOLVE, STRING(MAX_BAD_RESOLVE), "10");
275  cf_add_id_str (CF_RESOLVE_FAIL_NETCLASS, STRING(RESOLVE_FAIL_NETCLASS), 256, "");
276  cf_add_id_str (CF_RESOLVE_FORGED_NETCLASS, STRING(RESOLVE_FORGED_NETCLASS), 256, "");
277  cf_add_id_enum (CF_GREY_CHECK, STRING(GREY_CHECK), ENUM_NO_YES, "NO");
278  cf_add_id_enum (CF_GREY_MODE, STRING(GREY_MODE), ENUM_GREY_MODE, "STANDALONE");
279  cf_add_id_str (CF_GREY_SOCKET, STRING(GREY_SOCKET), 256, "inet:2012@127.0.0.1");
280  cf_add_id_int (CF_GREY_CONNECT_TIMEOUT, STRING(GREY_CONNECT_TIMEOUT), "10s");
281  cf_add_id_int (CF_GREY_MIN_DELAY_NORMAL, STRING(GREY_MIN_DELAY_NORMAL), "10m");
282  cf_add_id_int (CF_GREY_MIN_DELAY_NULLSENDER, STRING(GREY_MIN_DELAY_NULLSENDER), "10m");
283  cf_add_id_int (CF_GREY_MAX_DELAY_NORMAL, STRING(GREY_MAX_DELAY_NORMAL), "3d");
284  cf_add_id_int (CF_GREY_MAX_DELAY_NULLSENDER, STRING(GREY_MAX_DELAY_NULLSENDER), "6h");
285  cf_add_id_int (CF_GREY_VALIDLIST_LIFETIME, STRING(GREY_VALIDLIST_LIFETIME), "1w");
286  cf_add_id_int (CF_GREY_WHITELIST_LIFETIME, STRING(GREY_WHITELIST_LIFETIME), "2w");
287  cf_add_id_int (CF_GREY_BLACKLIST_LIFETIME, STRING(GREY_BLACKLIST_LIFETIME), "1d");
288  cf_add_id_int (CF_GREY_MAX_PENDING_NORMAL, STRING(GREY_MAX_PENDING_NORMAL), "0");
289  cf_add_id_int (CF_GREY_MAX_PENDING_NULLSENDER, STRING(GREY_MAX_PENDING_NULLSENDER), "0");
290  cf_add_id_enum (CF_GREY_COMPAT_DOMAIN_CHECK, STRING(GREY_COMPAT_DOMAIN_CHECK), ENUM_NO_YES, "YES");
291  cf_add_id_str (CF_GREY_IP_COMPONENT, STRING(GREY_IP_COMPONENT), 64, "NET");
292  cf_add_id_str (CF_GREY_FROM_COMPONENT, STRING(GREY_FROM_COMPONENT), 64, "HOST");
293  cf_add_id_str (CF_GREY_TO_COMPONENT, STRING(GREY_TO_COMPONENT), 64, "FULL");
294  cf_add_id_str (CF_GREY_REPLY, STRING(GREY_REPLY), 256, "451:4.3.2:Temporary failure ! Come back later, please !");
295  cf_add_id_int (CF_GREY_CLEANUP_INTERVAL, STRING(GREY_CLEANUP_INTERVAL), "10m");
296  cf_add_id_str (CF_GREY_DEWHITE_FLAGS, STRING(GREY_DEWHITE_FLAGS), 256, "DomainMismatch");
297  cf_add_id_str (CF_GREY_LOG_FILE, STRING(GREY_LOG_FILE), 256, ZE_GREY_LOG);
298  cf_add_id_str (CF_GREYD_SOCKET_LISTEN, STRING(GREYD_SOCKET_LISTEN), 256, "inet:2012@0.0.0.0");
299  cf_add_id_str (CF_GREYD_LOG_FACILITY, STRING(GREYD_LOG_FACILITY), 256, "local6");
300  cf_add_id_int (CF_GREYD_LOG_LEVEL, STRING(GREYD_LOG_LEVEL), "10");
301  cf_add_id_str (CF_GREYDDIR, STRING(GREYDDIR), 256, ZE_GREYDDIR);
302  cf_add_id_str (CF_GREYD_PID_FILE, STRING(GREYD_PID_FILE), 256, ZE_GREYD_PID_FILE);
303  cf_add_id_int (CF_GREYD_CLIENT_IDLE_MAX, STRING(GREYD_CLIENT_IDLE_MAX), "300");
304  cf_sort();
305 }
306 
307 
308 /*****************************************************************************
309  * *
310  * *
311  *****************************************************************************/
312 void
314 {
315  cf_set_val (CF_VERSION, "1.12.0");
316  cf_set_val (CF_MYSELF, "127.0.0.1 HOSTNAME");
317  cf_set_val (CF_ZE_HOSTNAME, "SYSTEM");
318  cf_set_val (CF_PRESENCE, "SHOW");
319  cf_set_val (CF_FOOTER, "SHOW");
320  cf_set_val (CF_FILTER_URL, "http : // foss dot jose-marcio dot org");
323  cf_set_val (CF_USER, "ze-filter");
324  cf_set_val (CF_GROUP, "ze-filter");
333  cf_set_val (CF_SM_TIMEOUT, "600s");
335  cf_set_val (CF_CTRL_SOCKET, "inet:2010@127.0.0.1");
336  cf_set_val (CF_CTRL_ACCESS, "NONE");
337  cf_set_val (CF_CONFDIR, "/etc/ze-filter");
338  cf_set_val (CF_ERROR_MSG_FILE, "ze-error-msg");
340  cf_set_val (CF_MODULES_CF, "ze-modules");
341  cf_set_val (CF_LOG_FACILITY, "local5");
342  cf_set_val (CF_LOG_LEVEL, "10");
343  cf_set_val (CF_LOG_SEVERITY, "NO");
344  cf_set_val (CF_CLUSTER, "NO");
346  cf_set_val (CF_LOG_THROTTLE, "YES");
347  cf_set_val (CF_LOG_LOAD, "YES");
349  cf_set_val (CF_DUMP_COUNTERS, "YES");
350  cf_set_val (CF_STATS_INTERVAL, "300");
361  cf_set_val (CF_ARCHIVE, "NO");
362  cf_set_val (CF_MODDIR, "/usr/lib/ze-filter");
365  cf_set_val (CF_DB_CACHE_SIZE, "32M");
366  cf_set_val (CF_DB_POLICY, "ze-policy.db");
367  cf_set_val (CF_POLICY_CONFLICT, "DEFAULT");
375  cf_set_val (CF_NOTIFY_RCPT, "YES");
376  cf_set_val (CF_ZE_SENDER, "SENDER");
377  cf_set_val (CF_ZE_SUBJECT, "SUBJECT");
378  cf_set_val (CF_XFILES, "OK");
379  cf_set_val (CF_XFILES_FILE, "ze-xfiles");
380  cf_set_val (CF_XFILE_SAVE_MSG, "YES");
384  cf_set_val (CF_SCANNER_SOCK, "inet:2002@localhost");
385  cf_set_val (CF_SCANNER_PROTOCOL, "CLAMAV");
389  cf_set_val (CF_SCANNER_SAVE, "YES");
398  cf_set_val (CF_DB_BAYES, "ze-bayes.db");
399  cf_set_val (CF_SPAM_URLBL, "NO");
400  cf_set_val (CF_DB_URLBL, "ze-urlbl.db");
401  cf_set_val (CF_DNS_URLBL, "ze-tables:DNS-URLBL");
402  cf_set_val (CF_SPAM_REGEX, "NO");
403  cf_set_val (CF_REGEX_FILE, "ze-regex");
409  cf_set_val (CF_SPAM_ORACLE, "NO");
410  cf_set_val (CF_ORACLE_SCORES_FILE, "ze-oracle:ORACLE-SCORES");
411  cf_set_val (CF_ORACLE_DATA_FILE, "ze-oracle:ORACLE-DATA");
413  cf_set_val (CF_ORACLE_STATS_FILE, "oracle-stats.log");
414  cf_set_val (CF_ORACLE_COUNTERS_FILE, "oracle-counters.log");
417  cf_set_val (CF_XSTATUS_HEADER, "X-ze-filter-Status");
418  cf_set_val (CF_XSTATUS_HEADER_HI_CONDITION, "score > 0.75");
419  cf_set_val (CF_XSTATUS_HEADER_LO_CONDITION, "score > 0.65");
425  cf_set_val (CF_REMOVE_HEADERS, "NONE");
426  cf_set_val (CF_REMOVE_SCORES, "NONE");
427  cf_set_val (CF_DNS_IPRBWL, "ze-tables:DNS-IP-RBWL");
434  cf_set_val (CF_DELAY_CHECKS, "NO");
436  cf_set_val (CF_MAX_BADRCPTS, "10");
438  cf_set_val (CF_DB_RCPT, "ze-rcpt.db");
442  cf_set_val (CF_MAX_RCPT_RATE, "100");
444  cf_set_val (CF_MAX_RCPT, "200");
446  cf_set_val (CF_MAX_MSG_RATE, "100");
448  cf_set_val (CF_MAX_MSGS, "100");
452  cf_set_val (CF_MAX_FROM_RCPT, "200");
456  cf_set_val (CF_MAX_FROM_MSGS, "100");
458  cf_set_val (CF_BADEHLO_CHECKS, "All");
461  cf_set_val (CF_DEFAULT_BAD_MX_REPLY, "421:4.5.1:Unreacheable domain. Try again later !");
470  cf_set_val (CF_NO_HEADERS, "OK");
476  cf_set_val (CF_GREY_CHECK, "NO");
477  cf_set_val (CF_GREY_MODE, "STANDALONE");
478  cf_set_val (CF_GREY_SOCKET, "inet:2012@127.0.0.1");
493  cf_set_val (CF_GREY_REPLY, "451:4.3.2:Temporary failure ! Come back later, please !");
495  cf_set_val (CF_GREY_DEWHITE_FLAGS, "DomainMismatch");
497  cf_set_val (CF_GREYD_SOCKET_LISTEN, "inet:2012@0.0.0.0");
498  cf_set_val (CF_GREYD_LOG_FACILITY, "local6");
503 }
504 
505 /*****************************************************************************
506  * *
507  * *
508  *****************************************************************************/
509 
510 static cfvar_t cfvar[] = {
511  /* Configuration file version */
512  {CF_VERSION, ZE_STR, NULL, 256,
513  "VERSION",
514  "1.12.0",
515  "General Parameters",
516  "Configuration file version",
517  "-----",
518  "1.12.0"},
519 
520  /* My own names, IPs and aliases */
521  {CF_MYSELF, ZE_STR, NULL, 1024,
522  "MYSELF",
523  "127.0.0.1 HOSTNAME",
524  "General Parameters",
525  "My own names, IPs and aliases",
526  "-----",
527  "127.0.0.1 HOSTNAME"},
528 
529  /* How to get mailserver hostname ? */
530  {CF_ZE_HOSTNAME, ZE_ENUM, ENUM_HOSTNAME, 0,
531  "ZE_HOSTNAME",
532  "SYSTEM",
533  "General Parameters",
534  "How to get mailserver hostname ?",
535  "-----",
536  "SYSTEM"},
537 
538  /* Show/Hide presence (presence header) */
539  {CF_PRESENCE, ZE_ENUM, ENUM_PRESENCE, 0,
540  "PRESENCE",
541  "SHOW",
542  "General Parameters",
543  "Show/Hide presence (presence header)",
544  "-----",
545  "SHOW"},
546 
547  /* Show/Hide ze-filter signature at warning message */
548  {CF_FOOTER, ZE_ENUM, ENUM_PRESENCE, 0,
549  "FOOTER",
550  "SHOW",
551  "General Parameters",
552  "Show/Hide ze-filter signature at warning message",
553  "-----",
554  "SHOW"},
555 
556  /* Filter URL (to be included on X-Miltered header) */
557  {CF_FILTER_URL, ZE_STR, NULL, 256,
558  "FILTER_URL",
559  "http : // foss dot jose-marcio dot org",
560  "General Parameters",
561  "Filter URL (to be included on X-Miltered header)",
562  "-----",
563  "http : // foss dot jose-marcio dot org"},
564 
565  /* Policy filtering URL - appended to reply messages */
566  {CF_POLICY_URL, ZE_STR, NULL, 256,
567  "POLICY_URL",
568  "",
569  "General Parameters",
570  "Policy filtering URL - appended to reply messages",
571  "-----",
572  ""},
573 
574  /* SMTP daemons to disable filtering */
575  {CF_DAEMON_FILTER_DISABLE, ZE_STR, NULL, 256,
576  "DAEMON_FILTER_DISABLE",
577  "",
578  "General Parameters",
579  "SMTP daemons to disable filtering",
580  "NAME:PORT, NAME:PORT, ...",
581  ""},
582 
583  /* Filter USER ID */
584  {CF_USER, ZE_STR, NULL, 256,
585  "USER",
586  "ze-filter",
587  "System parameters and Resources",
588  "Filter USER ID",
589  "-----",
590  "ze-filter"},
591 
592  /* Filter GROUP ID */
593  {CF_GROUP, ZE_STR, NULL, 256,
594  "GROUP",
595  "ze-filter",
596  "System parameters and Resources",
597  "Filter GROUP ID",
598  "-----",
599  "ze-filter"},
600 
601  /* Number of available file descriptors (integer value or MAX) */
602  {CF_FILE_DESCRIPTORS, ZE_STR, NULL, 32,
603  "FILE_DESCRIPTORS",
604  "MAX",
605  "System parameters and Resources",
606  "Number of available file descriptors (integer value or MAX)",
607  "-----",
608  "MAX"},
609 
610  /* Available file descriptors soft lower bound */
611  {CF_FD_FREE_SOFT_LIMIT, ZE_INT, NULL, 0,
612  "FD_FREE_SOFT_LIMIT",
613  "100",
614  "System parameters and Resources",
615  "Available file descriptors soft lower bound",
616  "-----",
617  "100"},
618 
619  /* Available file descriptors hard lower bound */
620  {CF_FD_FREE_HARD_LIMIT, ZE_INT, NULL, 0,
621  "FD_FREE_HARD_LIMIT",
622  "50",
623  "System parameters and Resources",
624  "Available file descriptors hard lower bound",
625  "-----",
626  "50"},
627 
628  /* Available file descriptors limited by select function */
629  {CF_USE_SELECT_LIMIT, ZE_ENUM, ENUM_NO_YES, 0,
630  "USE_SELECT_LIMIT",
631  "YES",
632  "System parameters and Resources",
633  "Available file descriptors limited by select function",
634  "-----",
635  "YES"},
636 
637  /* SOFT CPU Idle threshold to accept connections */
638  {CF_CPU_IDLE_SOFT_LIMIT, ZE_INT, NULL, 0,
639  "CPU_IDLE_SOFT_LIMIT",
640  "0",
641  "System parameters and Resources",
642  "SOFT CPU Idle threshold to accept connections",
643  "-----",
644  "0"},
645 
646  /* HARD CPU Idle threshold to accept connections */
647  {CF_CPU_IDLE_HARD_LIMIT, ZE_INT, NULL, 0,
648  "CPU_IDLE_HARD_LIMIT",
649  "0",
650  "System parameters and Resources",
651  "HARD CPU Idle threshold to accept connections",
652  "-----",
653  "0"},
654 
655  /* Maximum number of simultaneous open connections */
656  {CF_MAX_OPEN_CONNECTIONS, ZE_INT, NULL, 0,
657  "MAX_OPEN_CONNECTIONS",
658  "500",
659  "System parameters and Resources",
660  "Maximum number of simultaneous open connections",
661  "-----",
662  "500"},
663 
664  /* Communication socket between sendmail and ze-filter */
665  {CF_SOCKET, ZE_STR, NULL, 256,
666  "SOCKET",
668  "MTA Communications",
669  "Communication socket between sendmail and ze-filter",
670  "inet:PORT@HOSTNAME | local:SOCKET_PATH",
671  ZE_SMSOCKFILE},
672 
673  /* Inactivity timeout (milter <-> sendmail connection) */
674  {CF_SM_TIMEOUT, ZE_INT, NULL, 0,
675  "SM_TIMEOUT",
676  "600s",
677  "MTA Communications",
678  "Inactivity timeout (milter <-> sendmail connection)",
679  "-----",
680  "600s"},
681 
682  /* Enable remote control channel */
683  {CF_CTRL_CHANNEL_ENABLE, ZE_ENUM, ENUM_NO_YES, 0,
684  "CTRL_CHANNEL_ENABLE",
685  "YES",
686  "Control channel",
687  "Enable remote control channel",
688  "-----",
689  "YES"},
690 
691  /* Control socket */
692  {CF_CTRL_SOCKET, ZE_STR, NULL, 256,
693  "CTRL_SOCKET",
694  "inet:2010@127.0.0.1",
695  "Control channel",
696  "Control socket",
697  "inet:PORT@HOSTNAME | local:SOCKET_PATH",
698  "inet:2010@127.0.0.1"},
699 
700  /* How to do access control over control channel */
701  {CF_CTRL_ACCESS, ZE_ENUM, ENUM_CTRL_ACCESS, 0,
702  "CTRL_ACCESS",
703  "NONE",
704  "Control channel",
705  "How to do access control over control channel",
706  "-----",
707  "NONE"},
708 
709  /* ze-filter configuration directory */
710  {CF_CONFDIR, ZE_STR, NULL, 256,
711  "CONFDIR",
712  "/etc/ze-filter",
713  "Configuration Files",
714  "ze-filter configuration directory",
715  "-----",
716  "/etc/ze-filter"},
717 
718  /* Notification template */
719  {CF_ERROR_MSG_FILE, ZE_STR, NULL, 256,
720  "ERROR_MSG_FILE",
721  "ze-error-msg",
722  "Configuration Files",
723  "Notification template",
724  "-----",
725  "ze-error-msg"},
726 
727  /* Periodic configuration reload interval */
728  {CF_AUTO_RELOAD_TABLES, ZE_INT, NULL, 0,
729  "AUTO_RELOAD_TABLES",
730  "3600s",
731  "Configuration Files",
732  "Periodic configuration reload interval",
733  "-----",
734  "3600s"},
735 
736  /* Modules */
737  {CF_MODULES_CF, ZE_STR, NULL, 256,
738  "MODULES_CF",
739  "ze-modules",
740  "Configuration Files",
741  "Modules",
742  "-----",
743  "ze-modules"},
744 
745  /* syslog facility */
746  {CF_LOG_FACILITY, ZE_STR, NULL, 256,
747  "LOG_FACILITY",
748  "local5",
749  "Logging",
750  "syslog facility",
751  "-----",
752  "local5"},
753 
754  /* ze-filter log level */
755  {CF_LOG_LEVEL, ZE_INT, NULL, 0,
756  "LOG_LEVEL",
757  "10",
758  "Logging",
759  "ze-filter log level",
760  "-----",
761  "10"},
762 
763  /* Add a severity tag to syslog lines */
764  {CF_LOG_SEVERITY, ZE_ENUM, ENUM_NO_YES, 0,
765  "LOG_SEVERITY",
766  "NO",
767  "Logging",
768  "Add a severity tag to syslog lines",
769  "-----",
770  "NO"},
771 
772  /* Filter sharing resources inside a cluster (spool/server) */
773  {CF_CLUSTER, ZE_ENUM, ENUM_NO_YES, 0,
774  "CLUSTER",
775  "NO",
776  "Logging",
777  "Filter sharing resources inside a cluster (spool/server)",
778  "-----",
779  "NO"},
780 
781  /* Log attached files (using syslog) */
782  {CF_LOG_ATTACHMENTS, ZE_ENUM, ENUM_NO_YES, 0,
783  "LOG_ATTACHMENTS",
784  "NO",
785  "Logging",
786  "Log attached files (using syslog)",
787  "-----",
788  "NO"},
789 
790  /* Periodically log server throttle (using syslog) */
791  {CF_LOG_THROTTLE, ZE_ENUM, ENUM_NO_YES, 0,
792  "LOG_THROTTLE",
793  "YES",
794  "Logging",
795  "Periodically log server throttle (using syslog)",
796  "-----",
797  "YES"},
798 
799  /* Periodically log CPU load (using syslog) */
800  {CF_LOG_LOAD, ZE_ENUM, ENUM_NO_YES, 0,
801  "LOG_LOAD",
802  "YES",
803  "Logging",
804  "Periodically log CPU load (using syslog)",
805  "-----",
806  "YES"},
807 
808  /* Log results of greylist database maintenance */
809  {CF_LOG_GREY_CLEANING, ZE_ENUM, ENUM_NO_YES, 0,
810  "LOG_GREY_CLEANING",
811  "NO",
812  "Logging",
813  "Log results of greylist database maintenance",
814  "-----",
815  "NO"},
816 
817  /* Periodically dump internal counters */
818  {CF_DUMP_COUNTERS, ZE_ENUM, ENUM_NO_YES, 0,
819  "DUMP_COUNTERS",
820  "YES",
821  "Logging",
822  "Periodically dump internal counters",
823  "-----",
824  "YES"},
825 
826  /* Time interval used to dump periodical data (load, throttle, ...) */
827  {CF_STATS_INTERVAL, ZE_INT, NULL, 0,
828  "STATS_INTERVAL",
829  "300",
830  "Logging",
831  "Time interval used to dump periodical data (load, throttle, ...)",
832  "-----",
833  "300"},
834 
835  /* Number of entries of history (times 1024) */
836  {CF_HISTORY_ENTRIES, ZE_INT, NULL, 0,
837  "HISTORY_ENTRIES",
838  "256",
839  "Logging",
840  "Number of entries of history (times 1024)",
841  "-----",
842  "256"},
843 
844  /* ze-filter root directory */
845  {CF_WORKROOT, ZE_STR, NULL, 256,
846  "WORKROOT",
847  ZE_WORKROOT,
848  "Spool and state Files",
849  "ze-filter root directory ",
850  "-----",
851  ZE_WORKROOT},
852 
853  /* ze-filter work directory (state and specific logs) */
854  {CF_WORKDIR, ZE_STR, NULL, 256,
855  "WORKDIR",
856  ZE_WORKDIR,
857  "Spool and state Files",
858  "ze-filter work directory (state and specific logs)",
859  "-----",
860  ZE_WORKDIR},
861 
862  /* ze-filter message spool directory */
863  {CF_SPOOLDIR, ZE_STR, NULL, 256,
864  "SPOOLDIR",
865  ZE_SPOOLDIR,
866  "Spool and state Files",
867  "ze-filter message spool directory",
868  "-----",
869  ZE_SPOOLDIR},
870 
871  /* ze-filter pid file */
872  {CF_PID_FILE, ZE_STR, NULL, 256,
873  "PID_FILE",
874  ZE_PID_FILE,
875  "Spool and state Files",
876  "ze-filter pid file",
877  "-----",
878  ZE_PID_FILE},
879 
880  /* STATS_FILE */
881  {CF_STATS_FILE, ZE_STR, NULL, 256,
882  "STATS_FILE",
884  "Spool and state Files",
885  "STATS_FILE",
886  "-----",
887  ZE_STATS_FILE},
888 
889  /* Quarantine directory clean-up interval */
890  {CF_CLEANUP_INTERVAL, ZE_INT, NULL, 0,
891  "CLEANUP_INTERVAL",
892  "6h",
893  "Quarantine and Archive management",
894  "Quarantine directory clean-up interval",
895  "-----",
896  "6h"},
897 
898  /* Quarantine */
899  {CF_QUARANTINE_LIFETIME, ZE_INT, NULL, 0,
900  "QUARANTINE_LIFETIME",
901  "1d",
902  "Quarantine and Archive management",
903  "Quarantine",
904  "-----",
905  "1d"},
906 
907  /* Add From line to quarantine file ? */
908  {CF_QUARANTINE_ADD_FROM_LINE, ZE_ENUM, ENUM_NO_YES, 0,
909  "QUARANTINE_ADD_FROM_LINE",
910  "YES",
911  "Quarantine and Archive management",
912  "Add From line to quarantine file ?",
913  "-----",
914  "YES"},
915 
916  /* Quarantine log file */
917  {CF_QUARANTINE_LOG_FILE, ZE_STR, NULL, 256,
918  "QUARANTINE_LOG_FILE",
920  "Quarantine and Archive management",
921  "Quarantine log file",
922  "-----",
923  ZE_QUARANTINE_LOG},
924 
925  /* Archiving messages */
926  {CF_ARCHIVE, ZE_ENUM, ENUM_NO_YES, 0,
927  "ARCHIVE",
928  "NO",
929  "Quarantine and Archive management",
930  "Archiving messages",
931  "-----",
932  "NO"},
933 
934  /* Modules */
935  {CF_MODDIR, ZE_STR, NULL, 256,
936  "MODDIR",
937  "/usr/lib/ze-filter",
938  "Modules",
939  "Modules",
940  "-----",
941  "/usr/lib/ze-filter"},
942 
943  /* ze-filter working databases directory */
944  {CF_WDBDIR, ZE_STR, NULL, 256,
945  "WDBDIR",
946  ZE_WDBDIR,
947  "Databases",
948  "ze-filter working databases directory",
949  "-----",
950  ZE_WDBDIR},
951 
952  /* ze-filter constant databases directory */
953  {CF_CDBDIR, ZE_STR, NULL, 256,
954  "CDBDIR",
955  ZE_CDBDIR,
956  "Constant Databases",
957  "ze-filter constant databases directory",
958  "-----",
959  ZE_CDBDIR},
960 
961  /* BerkeleyDB constant databases cache size */
962  {CF_DB_CACHE_SIZE, ZE_INT, NULL, 0,
963  "DB_CACHE_SIZE",
964  "32M",
965  "Constant Databases",
966  "BerkeleyDB constant databases cache size",
967  "-----",
968  "32M"},
969 
970  /* Policy database path */
971  {CF_DB_POLICY, ZE_STR, NULL, 256,
972  "DB_POLICY",
973  "ze-policy.db",
974  "Constant Databases",
975  "Policy database path",
976  "-----",
977  "ze-policy.db"},
978 
979  /* What to do if users policy conflit */
980  {CF_POLICY_CONFLICT, ZE_ENUM, ENUM_POLICY_CONFLICT, 0,
981  "POLICY_CONFLICT",
982  "DEFAULT",
983  "Constant Databases",
984  "What to do if users policy conflit",
985  "-----",
986  "DEFAULT"},
987 
988  /* Token */
989  {CF_FROM_PASS_TOKEN, ZE_STR, NULL, 256,
990  "FROM_PASS_TOKEN",
991  "",
992  "Constant Databases",
993  "Token",
994  "-----",
995  ""},
996 
997  /* Token */
998  {CF_TO_PASS_TOKEN, ZE_STR, NULL, 256,
999  "TO_PASS_TOKEN",
1000  "",
1001  "Constant Databases",
1002  "Token ",
1003  "-----",
1004  ""},
1005 
1006  /* Address resolution (IP address / hostname) cache */
1007  {CF_RESOLVE_CACHE_ENABLE, ZE_ENUM, ENUM_NO_YES, 0,
1008  "RESOLVE_CACHE_ENABLE",
1009  "YES",
1010  "Resolve cache database",
1011  "Address resolution (IP address / hostname) cache",
1012  "-----",
1013  "YES"},
1014 
1015  /* Interval between cache synchronization */
1016  {CF_RESOLVE_CACHE_SYNC, ZE_INT, NULL, 0,
1017  "RESOLVE_CACHE_SYNC",
1018  "1m",
1019  "Resolve cache database",
1020  "Interval between cache synchronization",
1021  "-----",
1022  "1m"},
1023 
1024  /* Interval between cache maintenance */
1025  {CF_RESOLVE_CACHE_CHECK, ZE_INT, NULL, 0,
1026  "RESOLVE_CACHE_CHECK",
1027  "1h",
1028  "Resolve cache database",
1029  "Interval between cache maintenance",
1030  "-----",
1031  "1h"},
1032 
1033  /* Expiration age of non refreshed entries */
1034  {CF_RESOLVE_CACHE_EXPIRE, ZE_INT, NULL, 0,
1035  "RESOLVE_CACHE_EXPIRE",
1036  "2d",
1037  "Resolve cache database",
1038  "Expiration age of non refreshed entries",
1039  "-----",
1040  "2d"},
1041 
1042  /* Enable sender notification */
1043  {CF_NOTIFY_SENDER, ZE_ENUM, ENUM_NO_YES, 0,
1044  "NOTIFY_SENDER",
1045  "NO",
1046  "Sending Notification Messages",
1047  "Enable sender notification",
1048  "-----",
1049  "NO"},
1050 
1051  /* Enable recipient notification */
1052  {CF_NOTIFY_RCPT, ZE_ENUM, ENUM_NO_YES, 0,
1053  "NOTIFY_RCPT",
1054  "YES",
1055  "Sending Notification Messages",
1056  "Enable recipient notification",
1057  "-----",
1058  "YES"},
1059 
1060  /* Sender address used for notification message */
1061  {CF_ZE_SENDER, ZE_ENUM, ENUM_SENDER, 0,
1062  "ZE_SENDER",
1063  "SENDER",
1064  "Sending Notification Messages",
1065  "Sender address used for notification message",
1066  "-----",
1067  "SENDER"},
1068 
1069  /* Subject of replacement notification message */
1070  {CF_ZE_SUBJECT, ZE_ENUM, ENUM_SUBJECT, 0,
1071  "ZE_SUBJECT",
1072  "SUBJECT",
1073  "Sending Notification Messages",
1074  "Subject of replacement notification message",
1075  "-----",
1076  "SUBJECT"},
1077 
1078  /* What to do with X-files ? (OK, REJECT, NOTIFY, DISCARD) */
1079  {CF_XFILES, ZE_ENUM, ENUM_ACTION, 0,
1080  "XFILES",
1081  "OK",
1082  "Built-in X-File scanner",
1083  "What to do with X-files ? (OK, REJECT, NOTIFY, DISCARD)",
1084  "-----",
1085  "OK"},
1086 
1087  /* X-Files (file extension + MIME type) configuration */
1088  {CF_XFILES_FILE, ZE_STR, NULL, 256,
1089  "XFILES_FILE",
1090  "ze-xfiles",
1091  "Built-in X-File scanner",
1092  "X-Files (file extension + MIME type) configuration",
1093  "-----",
1094  "ze-xfiles"},
1095 
1096  /* Shall quarantine messages containing X-Files ? */
1097  {CF_XFILE_SAVE_MSG, ZE_ENUM, ENUM_NO_YES, 0,
1098  "XFILE_SAVE_MSG",
1099  "YES",
1100  "Built-in X-File scanner",
1101  "Shall quarantine messages containing X-Files ?",
1102  "-----",
1103  "YES"},
1104 
1105  /* Tag to be inserted on Subject */
1106  {CF_XFILE_SUBJECT_TAG, ZE_STR, NULL, 256,
1107  "XFILE_SUBJECT_TAG",
1108  "",
1109  "Built-in X-File scanner",
1110  "Tag to be inserted on Subject",
1111  "-----",
1112  ""},
1113 
1114  /* Detected X-Files log file */
1115  {CF_XFILES_LOG_FILE, ZE_STR, NULL, 256,
1116  "XFILES_LOG_FILE",
1117  ZE_XFILES_LOG,
1118  "Built-in X-File scanner",
1119  "Detected X-Files log file",
1120  "-----",
1121  ZE_XFILES_LOG},
1122 
1123  /* */
1124  {CF_SCANNER_ACTION, ZE_ENUM, ENUM_ACTION, 0,
1125  "SCANNER_ACTION",
1126  "OK",
1127  "External virus scanner",
1128  "",
1129  "-----",
1130  "OK"},
1131 
1132  /* Communication socket between ze-filter and external scanner */
1133  {CF_SCANNER_SOCK, ZE_STR, NULL, 256,
1134  "SCANNER_SOCK",
1135  "inet:2002@localhost",
1136  "External virus scanner",
1137  "Communication socket between ze-filter and external scanner",
1138  "inet:PORT@HOSTNAME | local:SOCKET_PATH",
1139  "inet:2002@localhost"},
1140 
1141  /* Protocol */
1142  {CF_SCANNER_PROTOCOL, ZE_ENUM, ENUM_PROTOCOL, 0,
1143  "SCANNER_PROTOCOL",
1144  "CLAMAV",
1145  "External virus scanner",
1146  "Protocol",
1147  "-----",
1148  "CLAMAV"},
1149 
1150  /* Timeout waiting for the scanner answer */
1151  {CF_SCANNER_TIMEOUT, ZE_INT, NULL, 0,
1152  "SCANNER_TIMEOUT",
1153  "15s",
1154  "External virus scanner",
1155  "Timeout waiting for the scanner answer",
1156  "-----",
1157  "15s"},
1158 
1159  /* Reject messages when scanner call returns an error */
1160  {CF_SCANNER_REJECT_ON_ERROR, ZE_ENUM, ENUM_NO_YES, 0,
1161  "SCANNER_REJECT_ON_ERROR",
1162  "NO",
1163  "External virus scanner",
1164  "Reject messages when scanner call returns an error",
1165  "-----",
1166  "NO"},
1167 
1168  /* Max message size to pass to scanner */
1169  {CF_SCANNER_MAX_MSG_SIZE, ZE_INT, NULL, 0,
1170  "SCANNER_MAX_MSG_SIZE",
1171  "100K",
1172  "External virus scanner",
1173  "Max message size to pass to scanner",
1174  "-----",
1175  "100K"},
1176 
1177  /* Shall messages be quarantined ??? */
1178  {CF_SCANNER_SAVE, ZE_ENUM, ENUM_NO_YES, 0,
1179  "SCANNER_SAVE",
1180  "YES",
1181  "External virus scanner",
1182  "Shall messages be quarantined ???",
1183  "-----",
1184  "YES"},
1185 
1186  /* Detected Virus log file */
1187  {CF_VIRUS_LOG_FILE, ZE_STR, NULL, 256,
1188  "VIRUS_LOG_FILE",
1189  ZE_VIRUS_LOG,
1190  "External virus scanner",
1191  "Detected Virus log file",
1192  "file:filename or udp:port@hostname",
1193  ZE_VIRUS_LOG},
1194 
1195  /* Enable Bayesian filter */
1196  {CF_BAYESIAN_FILTER, ZE_ENUM, ENUM_NO_YES, 0,
1197  "BAYESIAN_FILTER",
1198  "NO",
1199  "Antispam checks (bayesian filter)",
1200  "Enable Bayesian filter",
1201  "-----",
1202  "NO"},
1203 
1204  /* Max message size */
1205  {CF_BAYES_MAX_MESSAGE_SIZE, ZE_INT, NULL, 0,
1206  "BAYES_MAX_MESSAGE_SIZE",
1207  "100K",
1208  "Antispam checks (bayesian filter)",
1209  "Max message size",
1210  "-----",
1211  "100K"},
1212 
1213  /* Max message part size */
1214  {CF_BAYES_MAX_PART_SIZE, ZE_INT, NULL, 0,
1215  "BAYES_MAX_PART_SIZE",
1216  "30K",
1217  "Antispam checks (bayesian filter)",
1218  "Max message part size",
1219  "-----",
1220  "30K"},
1221 
1222  /* Ratio HAM/SPAM (times 1000) */
1223  {CF_BAYES_HAM_SPAM_RATIO, ZE_INT, NULL, 0,
1224  "BAYES_HAM_SPAM_RATIO",
1225  "1000",
1226  "Antispam checks (bayesian filter)",
1227  "Ratio HAM/SPAM (times 1000)",
1228  "-----",
1229  "1000"},
1230 
1231  /* Number of tokens to consider */
1232  {CF_BAYES_NB_TOKENS, ZE_INT, NULL, 0,
1233  "BAYES_NB_TOKENS",
1234  "48",
1235  "Antispam checks (bayesian filter)",
1236  "Number of tokens to consider",
1237  "-----",
1238  "48"},
1239 
1240  /* Probability assigned to unknown tokens (times 1000) */
1242  "BAYES_UNKNOWN_TOKEN_PROB",
1243  "500",
1244  "Antispam checks (bayesian filter)",
1245  "Probability assigned to unknown tokens (times 1000)",
1246  "-----",
1247  "500"},
1248 
1249  /* Active learning used in the statistical filter */
1251  "ACTIVE_LEARNING_MARGIN",
1252  "0.35",
1253  "Antispam checks (bayesian filter)",
1254  "Active learning used in the statistical filter",
1255  "0.0 < margin < 0.5",
1256  "0.35"},
1257 
1258  /* Path of bayes tokens database */
1259  {CF_DB_BAYES, ZE_STR, NULL, 256,
1260  "DB_BAYES",
1261  "ze-bayes.db",
1262  "Antispam checks (bayesian filter)",
1263  "Path of bayes tokens database",
1264  "-----",
1265  "ze-bayes.db"},
1266 
1267  /* Do pattern matching */
1268  {CF_SPAM_URLBL, ZE_ENUM, ENUM_NO_YES, 0,
1269  "SPAM_URLBL",
1270  "NO",
1271  "Antispam content check - URL Filtering (URLBL)",
1272  "Do pattern matching",
1273  "-----",
1274  "YES"},
1275 
1276  /* Database Real-Time URL Blacklist (used for content checking) */
1277  {CF_DB_URLBL, ZE_STR, NULL, 1024,
1278  "DB_URLBL",
1279  "ze-urlbl.db",
1280  "Antispam content check - URL Filtering (URLBL)",
1281  "Database Real-Time URL Blacklist (used for content checking)",
1282  "-----",
1283  "ze-urlbl.db"},
1284 
1285  /* DNS Real-Time URL Blacklist (used for content checking) */
1286  {CF_DNS_URLBL, ZE_STR, NULL, 1024,
1287  "DNS_URLBL",
1288  "ze-tables:DNS-URLBL",
1289  "Antispam content check - URL Filtering (URLBL)",
1290  "DNS Real-Time URL Blacklist (used for content checking)",
1291  "RBL[/CODE[/SCORE]] - multi.surbl.org/127.0.0.1/10",
1292  "ze-tables:DNS-URLBL"},
1293 
1294  /* Do pattern matching */
1295  {CF_SPAM_REGEX, ZE_ENUM, ENUM_NO_YES, 0,
1296  "SPAM_REGEX",
1297  "NO",
1298  "Antispam content check - Pattern Matching (REGEX)",
1299  "Do pattern matching",
1300  "-----",
1301  "YES"},
1302 
1303  /* Regular expressions configuration file */
1304  {CF_REGEX_FILE, ZE_STR, NULL, 256,
1305  "REGEX_FILE",
1306  "ze-regex",
1307  "Antispam content check - Pattern Matching (REGEX)",
1308  "Regular expressions configuration file",
1309  "-----",
1310  "ze-regex"},
1311 
1312  /* Stop doing pattern matching when score is reached */
1313  {CF_REGEX_MAX_SCORE, ZE_INT, NULL, 0,
1314  "REGEX_MAX_SCORE",
1315  "50",
1316  "Antispam content check - Pattern Matching (REGEX)",
1317  "Stop doing pattern matching when score is reached",
1318  "-----",
1319  "50"},
1320 
1321  /* Max message size to do pattern matching */
1323  "SPAM_REGEX_MAX_MSG_SIZE",
1324  "40000",
1325  "Antispam content check - Pattern Matching (REGEX)",
1326  "Max message size to do pattern matching",
1327  "-----",
1328  "40000"},
1329 
1330  /* Max message size to do pattern matching */
1332  "SPAM_REGEX_MAX_MIME_SIZE",
1333  "15000",
1334  "Antispam content check - Pattern Matching (REGEX)",
1335  "Max message size to do pattern matching",
1336  "-----",
1337  "15000"},
1338 
1339  /* Log founded regular expressions to file */
1340  {CF_DUMP_FOUND_REGEX, ZE_ENUM, ENUM_NO_YES, 0,
1341  "DUMP_FOUND_REGEX",
1342  "YES",
1343  "Antispam content check - Pattern Matching (REGEX)",
1344  "Log founded regular expressions to file",
1345  "-----",
1346  "YES"},
1347 
1348  /* Matched pattern log file */
1349  {CF_REGEX_LOG_FILE, ZE_STR, NULL, 256,
1350  "REGEX_LOG_FILE",
1351  ZE_REGEX_LOG,
1352  "Antispam content check - Pattern Matching (REGEX)",
1353  "Matched pattern log file",
1354  "-----",
1355  ZE_REGEX_LOG},
1356 
1357  /* Do heuristic filtering */
1358  {CF_SPAM_ORACLE, ZE_ENUM, ENUM_NO_YES, 0,
1359  "SPAM_ORACLE",
1360  "NO",
1361  "Antispam content check - Heuristic filtering (ORACLE)",
1362  "Do heuristic filtering",
1363  "-----",
1364  "YES"},
1365 
1366  /* Oracle scores */
1367  {CF_ORACLE_SCORES_FILE, ZE_STR, NULL, 256,
1368  "ORACLE_SCORES_FILE",
1369  "ze-oracle:ORACLE-SCORES",
1370  "Antispam content check - Heuristic filtering (ORACLE)",
1371  "Oracle scores",
1372  "-----",
1373  "ze-oracle:ORACLE-SCORES"},
1374 
1375  /* Some oracle definitions */
1376  {CF_ORACLE_DATA_FILE, ZE_STR, NULL, 256,
1377  "ORACLE_DATA_FILE",
1378  "ze-oracle:ORACLE-DATA",
1379  "Antispam content check - Heuristic filtering (ORACLE)",
1380  "Some oracle definitions",
1381  "-----",
1382  "ze-oracle:ORACLE-DATA"},
1383 
1384  /* Heuristic filter log level (0, 1 or 2) */
1385  {CF_LOG_LEVEL_ORACLE, ZE_INT, NULL, 0,
1386  "LOG_LEVEL_ORACLE",
1387  "1",
1388  "Antispam content check - Heuristic filtering (ORACLE)",
1389  "Heuristic filter log level (0, 1 or 2)",
1390  "-----",
1391  "1"},
1392 
1393  /* Statistics for Oracle (dumped each STATISTICS_INTERVAL seconds) */
1394  {CF_ORACLE_STATS_FILE, ZE_STR, NULL, 256,
1395  "ORACLE_STATS_FILE",
1396  "oracle-stats.log",
1397  "Antispam content check - Heuristic filtering (ORACLE)",
1398  "Statistics for Oracle (dumped each STATISTICS_INTERVAL seconds)",
1399  "-----",
1400  "oracle-stats.log"},
1401 
1402  /* Persistent state of Oracle */
1403  {CF_ORACLE_COUNTERS_FILE, ZE_STR, NULL, 256,
1404  "ORACLE_COUNTERS_FILE",
1405  "oracle-counters.log",
1406  "Antispam content check - Heuristic filtering (ORACLE)",
1407  "Persistent state of Oracle",
1408  "-----",
1409  "oracle-counters.log"},
1410 
1411  /* Shall message score be inserted on Subject Header ? */
1412  {CF_SCORE_ON_SUBJECT, ZE_ENUM, ENUM_NO_YES, 0,
1413  "SCORE_ON_SUBJECT",
1414  "NO",
1415  "Antispam content check - Resulting score handling",
1416  "Shall message score be inserted on Subject Header ?",
1417  "-----",
1418  "NO"},
1419 
1420  /* Tag to be inserted on Subject ? */
1421  {CF_SCORE_ON_SUBJECT_TAG, ZE_STR, NULL, 256,
1422  "SCORE_ON_SUBJECT_TAG",
1423  "",
1424  "Antispam content check - Resulting score handling",
1425  "Tag to be inserted on Subject ?",
1426  "-----",
1427  ""},
1428 
1429  /* Status header */
1430  {CF_XSTATUS_HEADER, ZE_STR, NULL, 256,
1431  "XSTATUS_HEADER",
1432  "X-ze-filter-Status",
1433  "Antispam content check - Resulting score handling",
1434  "Status header",
1435  "-----",
1436  "X-ze-filter-Status"},
1437 
1438  /* When to add a 'X-ze-filter-Status: HI' Header */
1440  "XSTATUS_HEADER_HI_CONDITION",
1441  "score > 0.75",
1442  "Antispam content check - Resulting score handling",
1443  "When to add a 'X-ze-filter-Status: HI' Header",
1444  "Ex : (U=####|B=0.9|B=0.8|XXXX.*B=0.7)",
1445  "score > 0.75"},
1446 
1447  /* When to add a 'X-ze-filter-Status: LO' Header */
1449  "XSTATUS_HEADER_LO_CONDITION",
1450  "score > 0.65",
1451  "Antispam content check - Resulting score handling",
1452  "When to add a 'X-ze-filter-Status: LO' Header",
1453  "Ex : (U=####|B=0.9|B=0.8|XXXX.*B=0.7)",
1454  "score > 0.65"},
1455 
1456  /* When to add a 'X-ze-filter-Status: UNSURE' Header */
1458  "XSTATUS_HEADER_UNSURE_CONDITION",
1459  "score > 0.25",
1460  "Antispam content check - Resulting score handling",
1461  "When to add a 'X-ze-filter-Status: UNSURE' Header",
1462  "Ex : (U=####|B=0.9|B=0.8|XXXX.*B=0.7)",
1463  "score > 0.25"},
1464 
1465  /* When to add a 'X-ze-filter-Status: HAM' Header */
1467  "XSTATUS_HEADER_HAM_CONDITION",
1468  "score < 0.25",
1469  "Antispam content check - Resulting score handling",
1470  "When to add a 'X-ze-filter-Status: HAM' Header",
1471  "Ex : (U=####|B=0.9|B=0.8|XXXX.*B=0.7)",
1472  "score < 0.25"},
1473 
1474  /* Reject message if this regular expression matches score from X-ze-filter-score header */
1475  {CF_XSTATUS_REJECT_CONDITION, ZE_STR, NULL, 512,
1476  "XSTATUS_REJECT_CONDITION",
1477  "",
1478  "Antispam content check - Resulting score handling",
1479  "Reject message if this regular expression matches score from X-ze-filter-score header",
1480  "Ex : (U=####|B=0.9|B=0.8|XXXX.*B=0.7)",
1481  ""},
1482 
1483  /* */
1484  {CF_XSTATUS_REJECT_ONLY_UNKNOWN, ZE_ENUM, ENUM_NO_YES, 0,
1485  "XSTATUS_REJECT_ONLY_UNKNOWN",
1486  "YES",
1487  "Antispam content check - Resulting score handling",
1488  "",
1489  "",
1490  "YES"},
1491 
1492  /* If this regular expression matches X-ze-filter-score header, the message is quarantined */
1494  "XSTATUS_QUARANTINE_CONDITION",
1495  "",
1496  "Antispam content check - Resulting score handling",
1497  "If this regular expression matches X-ze-filter-score header, the message is quarantined",
1498  "Ex : (U=####|B=0.9|B=0.8|XXXX.*B=0.7)",
1499  ""},
1500 
1501  /* List of headers to remove */
1502  {CF_REMOVE_HEADERS, ZE_STR, NULL, 512,
1503  "REMOVE_HEADERS",
1504  "NONE",
1505  "Antispam content check - Resulting score handling",
1506  "List of headers to remove",
1507  "NONE | List of comma separated headers",
1508  "NONE"},
1509 
1510  /* List of headers to remove */
1511  {CF_REMOVE_SCORES, ZE_STR, NULL, 512,
1512  "REMOVE_SCORES",
1513  "NONE",
1514  "Antispam content check - Resulting score handling",
1515  "List of headers to remove",
1516  "NONE | List of comma separated servers",
1517  "NONE"},
1518 
1519  /* Real-Time Black/White Lists */
1520  {CF_DNS_IPRBWL, ZE_STR, NULL, 1024,
1521  "DNS_IPRBWL",
1522  "ze-tables:DNS-IP-RBWL",
1523  "DNS Realtime Black/White Lists",
1524  "Real-Time Black/White Lists ",
1525  "",
1526  "ze-tables:DNS-IP-RBWL"},
1527 
1528  /* Enable connection rate limiting */
1529  {CF_CHECK_CONN_RATE, ZE_ENUM, ENUM_NO_YES, 0,
1530  "CHECK_CONN_RATE",
1531  "NO",
1532  "Antispam checks (SMTP client behaviour)",
1533  "Enable connection rate limiting",
1534  "-----",
1535  "YES"},
1536 
1537  /* Max connection rate (can be redefined at ze-policy database) */
1538  {CF_MAX_CONN_RATE, ZE_INT, NULL, 0,
1539  "MAX_CONN_RATE",
1540  "15",
1541  "Antispam checks (SMTP client behaviour)",
1542  "Max connection rate (can be redefined at ze-policy database)",
1543  "-----",
1544  "15"},
1545 
1546  /* Enable simultaneous connections limiting */
1547  {CF_CHECK_OPEN_CONNECTIONS, ZE_ENUM, ENUM_NO_YES, 0,
1548  "CHECK_OPEN_CONNECTIONS",
1549  "NO",
1550  "Antispam checks (SMTP client behaviour)",
1551  "Enable simultaneous connections limiting ",
1552  "-----",
1553  "YES"},
1554 
1555  /* Max open connections for a single IP on unknown network */
1556  {CF_MAX_CONN_OPEN, ZE_INT, NULL, 0,
1557  "MAX_CONN_OPEN",
1558  "10",
1559  "Antispam checks (SMTP client behaviour)",
1560  "Max open connections for a single IP on unknown network",
1561  "-----",
1562  "10"},
1563 
1564  /* Check the number of empty connections */
1565  {CF_CHECK_EMPTY_CONNECTIONS, ZE_ENUM, ENUM_NO_YES, 0,
1566  "CHECK_EMPTY_CONNECTIONS",
1567  "NO",
1568  "Antispam checks (SMTP client behaviour)",
1569  "Check the number of empty connections",
1570  "-----",
1571  "NO"},
1572 
1573  /* Maximum number of empty connections over 4 hours */
1574  {CF_MAX_EMPTY_CONN, ZE_INT, NULL, 0,
1575  "MAX_EMPTY_CONN",
1576  "20",
1577  "Antispam checks (SMTP client behaviour)",
1578  "Maximum number of empty connections over 4 hours",
1579  "-----",
1580  "20"},
1581 
1582  /* Delay reject decisions */
1583  {CF_DELAY_CHECKS, ZE_ENUM, ENUM_NO_YES, 0,
1584  "DELAY_CHECKS",
1585  "NO",
1586  "Antispam checks (SMTP client behaviour)",
1587  "Delay reject decisions",
1588  "",
1589  "NO"},
1590 
1591  /* Check the number or Bad Recipients */
1592  {CF_CHECK_BADRCPTS, ZE_ENUM, ENUM_NO_YES, 0,
1593  "CHECK_BADRCPTS",
1594  "NO",
1595  "Recipient checks",
1596  "Check the number or Bad Recipients",
1597  "-----",
1598  "YES"},
1599 
1600  /* Maximum number of Bad Recipients over 4 hours */
1601  {CF_MAX_BADRCPTS, ZE_INT, NULL, 0,
1602  "MAX_BADRCPTS",
1603  "10",
1604  "Recipient checks",
1605  "Maximum number of Bad Recipients over 4 hours",
1606  "-----",
1607  "10"},
1608 
1609  /* Recipient Access and validation */
1610  {CF_CHECK_RCPT_ACCESS, ZE_ENUM, ENUM_NO_YES, 0,
1611  "CHECK_RCPT_ACCESS",
1612  "NO",
1613  "Recipient checks",
1614  "Recipient Access and validation",
1615  "-----",
1616  "YES"},
1617 
1618  /* Recipient database path */
1619  {CF_DB_RCPT, ZE_STR, NULL, 256,
1620  "DB_RCPT",
1621  "ze-rcpt.db",
1622  "Recipient checks",
1623  "Recipient database path",
1624  "-----",
1625  "ze-rcpt.db"},
1626 
1627  /* Result from SPAM TRAP check */
1628  {CF_SPAMTRAP_RESULT, ZE_ENUM, ENUM_REJECT, 0,
1629  "SPAMTRAP_RESULT",
1630  "OK",
1631  "Recipient checks",
1632  "Result from SPAM TRAP check",
1633  "-----",
1634  "OK"},
1635 
1636  /* Reject connections from clients sending messages to spam traps */
1637  {CF_CHECK_SPAMTRAP_HISTORY, ZE_ENUM, ENUM_NO_YES, 0,
1638  "CHECK_SPAMTRAP_HISTORY",
1639  "NO",
1640  "Recipient checks",
1641  "Reject connections from clients sending messages to spam traps",
1642  "-----",
1643  "NO"},
1644 
1645  /* Limit recipient rate for each SMTP client */
1646  {CF_CHECK_RCPT_RATE, ZE_ENUM, ENUM_NO_YES, 0,
1647  "CHECK_RCPT_RATE",
1648  "NO",
1649  "Recipient checks",
1650  "Limit recipient rate for each SMTP client",
1651  "-----",
1652  "NO"},
1653 
1654  /* Max recipient rate (can be redefined at ze-policy database) */
1655  {CF_MAX_RCPT_RATE, ZE_INT, NULL, 0,
1656  "MAX_RCPT_RATE",
1657  "100",
1658  "Recipient checks",
1659  "Max recipient rate (can be redefined at ze-policy database)",
1660  "-----",
1661  "100"},
1662 
1663  /* Check the number of recipients for each message */
1664  {CF_CHECK_NB_RCPT, ZE_ENUM, ENUM_NO_YES, 0,
1665  "CHECK_NB_RCPT",
1666  "NO",
1667  "Recipient checks",
1668  "Check the number of recipients for each message",
1669  "-----",
1670  "YES"},
1671 
1672  /* Max recipient per message for connections coming from unknown network */
1673  {CF_MAX_RCPT, ZE_INT, NULL, 0,
1674  "MAX_RCPT",
1675  "200",
1676  "Recipient checks",
1677  "Max recipient per message for connections coming from unknown network",
1678  "-----",
1679  "200"},
1680 
1681  /* Limit recipient rate for each SMTP client */
1682  {CF_CHECK_MSG_RATE, ZE_ENUM, ENUM_NO_YES, 0,
1683  "CHECK_MSG_RATE",
1684  "NO",
1685  "Recipient checks",
1686  "Limit recipient rate for each SMTP client",
1687  "-----",
1688  "YES"},
1689 
1690  /* Max message rate (can be redefined at ze-policy database) */
1691  {CF_MAX_MSG_RATE, ZE_INT, NULL, 0,
1692  "MAX_MSG_RATE",
1693  "100",
1694  "Recipient checks",
1695  "Max message rate (can be redefined at ze-policy database)",
1696  "-----",
1697  "100"},
1698 
1699  /* Limit the number of messages per connection */
1700  {CF_CHECK_NB_MSGS, ZE_ENUM, ENUM_NO_YES, 0,
1701  "CHECK_NB_MSGS",
1702  "NO",
1703  "Recipient checks",
1704  "Limit the number of messages per connection",
1705  "-----",
1706  "YES"},
1707 
1708  /* Maximum number of messages per connection */
1709  {CF_MAX_MSGS, ZE_INT, NULL, 0,
1710  "MAX_MSGS",
1711  "100",
1712  "Recipient checks",
1713  "Maximum number of messages per connection ",
1714  "-----",
1715  "100"},
1716 
1717  /* Limit recipient rate per from address */
1718  {CF_CHECK_FROM_RCPT_RATE, ZE_ENUM, ENUM_NO_YES, 0,
1719  "CHECK_FROM_RCPT_RATE",
1720  "NO",
1721  "Recipient checks",
1722  "Limit recipient rate per from address",
1723  "-----",
1724  "NO"},
1725 
1726  /* Max recipient rate per from address (can be redefined at ze-policy database) */
1727  {CF_MAX_FROM_RCPT_RATE, ZE_INT, NULL, 0,
1728  "MAX_FROM_RCPT_RATE",
1729  "100",
1730  "Recipient checks",
1731  "Max recipient rate per from address (can be redefined at ze-policy database)",
1732  "-----",
1733  "100"},
1734 
1735  /* Check the number of recipients per from address for each message */
1736  {CF_CHECK_NB_FROM_RCPT, ZE_ENUM, ENUM_NO_YES, 0,
1737  "CHECK_NB_FROM_RCPT",
1738  "NO",
1739  "Recipient checks",
1740  "Check the number of recipients per from address for each message",
1741  "-----",
1742  "YES"},
1743 
1744  /* Max recipient per message per from address */
1745  {CF_MAX_FROM_RCPT, ZE_INT, NULL, 0,
1746  "MAX_FROM_RCPT",
1747  "200",
1748  "Recipient checks",
1749  "Max recipient per message per from address ",
1750  "-----",
1751  "200"},
1752 
1753  /* Limit recipient rate per from address */
1754  {CF_CHECK_FROM_MSG_RATE, ZE_ENUM, ENUM_NO_YES, 0,
1755  "CHECK_FROM_MSG_RATE",
1756  "NO",
1757  "Recipient checks",
1758  "Limit recipient rate per from address",
1759  "-----",
1760  "YES"},
1761 
1762  /* Max message rate per from address (can be redefined at ze-policy database) */
1763  {CF_MAX_FROM_MSG_RATE, ZE_INT, NULL, 0,
1764  "MAX_FROM_MSG_RATE",
1765  "100",
1766  "Recipient checks",
1767  "Max message rate per from address (can be redefined at ze-policy database)",
1768  "-----",
1769  "100"},
1770 
1771  /* Limit the number of messages per from address */
1772  {CF_CHECK_FROM_NB_MSGS, ZE_ENUM, ENUM_NO_YES, 0,
1773  "CHECK_FROM_NB_MSGS",
1774  "NO",
1775  "Recipient checks",
1776  "Limit the number of messages per from address",
1777  "-----",
1778  "YES"},
1779 
1780  /* Maximum number of messages per from address */
1781  {CF_MAX_FROM_MSGS, ZE_INT, NULL, 0,
1782  "MAX_FROM_MSGS",
1783  "100",
1784  "Recipient checks",
1785  "Maximum number of messages per from address",
1786  "-----",
1787  "100"},
1788 
1789  /* Check EHLO parameters */
1790  {CF_REJECT_BADEHLO, ZE_ENUM, ENUM_NO_YES, 0,
1791  "REJECT_BADEHLO",
1792  "NO",
1793  "Envelope checks",
1794  "Check EHLO parameters",
1795  "",
1796  "NO"},
1797 
1798  /* EHLO parameter checks */
1799  {CF_BADEHLO_CHECKS, ZE_STR, NULL, 256,
1800  "BADEHLO_CHECKS",
1801  "All",
1802  "Envelope checks",
1803  "EHLO parameter checks",
1804  "InvalidChar,ForgedIP,NotBracketedIP,NotFQDN,IdentityTheft,Regex,All",
1805  "All"},
1806 
1807  /* Check Bad '<>' Sender Address */
1808  {CF_REJECT_BAD_NULL_SENDER, ZE_ENUM, ENUM_NO_YES, 0,
1809  "REJECT_BAD_NULL_SENDER",
1810  "NO",
1811  "Envelope checks",
1812  "Check Bad '<>' Sender Address",
1813  "-----",
1814  "NO"},
1815 
1816  /* Check Bad Sender MX */
1817  {CF_CHECK_BAD_SENDER_MX, ZE_ENUM, ENUM_NO_YES, 0,
1818  "CHECK_BAD_SENDER_MX",
1819  "NO",
1820  "Envelope checks",
1821  "Check Bad Sender MX",
1822  "-----",
1823  "YES"},
1824 
1825  /* Default BAD MX reply. */
1826  {CF_DEFAULT_BAD_MX_REPLY, ZE_STR, NULL, 256,
1827  "DEFAULT_BAD_MX_REPLY",
1828  "421:4.5.1:Unreacheable domain. Try again later !",
1829  "Envelope checks",
1830  "Default BAD MX reply.",
1831  "-----",
1832  "421:4.5.1:Unreacheable domain. Try again later !"},
1833 
1834  /* Check if message date is far in the future (> 24 hours) */
1835  {CF_REJECT_DATE_IN_FUTURE, ZE_ENUM, ENUM_NO_YES, 0,
1836  "REJECT_DATE_IN_FUTURE",
1837  "NO",
1838  "Antispam checks (Miscelaneous)",
1839  "Check if message date is far in the future (> 24 hours)",
1840  "-----",
1841  "YES"},
1842 
1843  /* Check if message date is far in the past (> 1 year) */
1844  {CF_REJECT_DATE_IN_PAST, ZE_ENUM, ENUM_NO_YES, 0,
1845  "REJECT_DATE_IN_PAST",
1846  "NO",
1847  "Antispam checks (Miscelaneous)",
1848  "Check if message date is far in the past (> 1 year)",
1849  "-----",
1850  "NO "},
1851 
1852  /* Reject messages whose body length is too short */
1853  {CF_REJECT_SHORT_BODIES, ZE_ENUM, ENUM_NO_YES, 0,
1854  "REJECT_SHORT_BODIES",
1855  "NO",
1856  "Antispam checks (Miscelaneous)",
1857  "Reject messages whose body length is too short",
1858  "-----",
1859  "NO"},
1860 
1861  /* Minimum body length */
1862  {CF_MIN_BODY_LENGTH, ZE_INT, NULL, 0,
1863  "MIN_BODY_LENGTH",
1864  "10",
1865  "Antispam checks (Miscelaneous)",
1866  "Minimum body length",
1867  "-----",
1868  "10"},
1869 
1870  /* Drop headers requesting delivery notification */
1872  "DROP_DELIVERY_NOTIFICATION_REQUEST",
1873  "NO",
1874  "Antispam checks (Miscelaneous)",
1875  "Drop headers requesting delivery notification",
1876  "-----",
1877  "NO"},
1878 
1879  /* Full Binary encoded message (deprecated) */
1880  {CF_ENCODING_BINARY, ZE_ENUM, ENUM_REJECT, 0,
1881  "ENCODING_BINARY",
1882  "OK",
1883  "Antispam checks (Miscelaneous)",
1884  "Full Binary encoded message (deprecated)",
1885  "-----",
1886  "OK"},
1887 
1888  /* Messages without To header (deprecated) */
1889  {CF_NO_TO_HEADERS, ZE_ENUM, ENUM_REJECT, 0,
1890  "NO_TO_HEADERS",
1891  "OK",
1892  "Antispam checks (Miscelaneous)",
1893  "Messages without To header (deprecated)",
1894  "-----",
1895  "OK"},
1896 
1897  /* Messages without From header (deprecated) */
1898  {CF_NO_FROM_HEADERS, ZE_ENUM, ENUM_REJECT, 0,
1899  "NO_FROM_HEADERS",
1900  "OK",
1901  "Antispam checks (Miscelaneous)",
1902  "Messages without From header (deprecated)",
1903  "-----",
1904  "OK"},
1905 
1906  /* Messages with no header (deprecated) */
1907  {CF_NO_HEADERS, ZE_ENUM, ENUM_REJECT, 0,
1908  "NO_HEADERS",
1909  "OK",
1910  "Antispam checks (Miscelaneous)",
1911  "Messages with no header (deprecated)",
1912  "-----",
1913  "OK"},
1914 
1915  /* What to do if client DNS resolution fails */
1916  {CF_CHECK_RESOLVE_FAIL, ZE_ENUM, ENUM_NO_YES, 0,
1917  "CHECK_RESOLVE_FAIL",
1918  "NO",
1919  "Reverse resolution of SMTP client IP address",
1920  "What to do if client DNS resolution fails",
1921  "-----",
1922  "NO"},
1923 
1924  /* What to do if client DNS resolution is forged */
1925  {CF_CHECK_RESOLVE_FORGED, ZE_ENUM, ENUM_NO_YES, 0,
1926  "CHECK_RESOLVE_FORGED",
1927  "NO",
1928  "Reverse resolution of SMTP client IP address",
1929  "What to do if client DNS resolution is forged",
1930  "-----",
1931  "NO"},
1932 
1933  /* ---- */
1934  {CF_MAX_BAD_RESOLVE, ZE_INT, NULL, 0,
1935  "MAX_BAD_RESOLVE",
1936  "10",
1937  "Reverse resolution of SMTP client IP address",
1938  "----",
1939  "-----",
1940  "10"},
1941 
1942  /* Resolve Fail NetClass */
1943  {CF_RESOLVE_FAIL_NETCLASS, ZE_STR, NULL, 256,
1944  "RESOLVE_FAIL_NETCLASS",
1945  "",
1946  "Reverse resolution of SMTP client IP address",
1947  "Resolve Fail NetClass",
1948  "-----",
1949  ""},
1950 
1951  /* Resolve Forged NetClass */
1952  {CF_RESOLVE_FORGED_NETCLASS, ZE_STR, NULL, 256,
1953  "RESOLVE_FORGED_NETCLASS",
1954  "",
1955  "Reverse resolution of SMTP client IP address",
1956  "Resolve Forged NetClass",
1957  "-----",
1958  ""},
1959 
1960  /* Enable greylisting filter */
1961  {CF_GREY_CHECK, ZE_ENUM, ENUM_NO_YES, 0,
1962  "GREY_CHECK",
1963  "NO",
1964  "Greylisting",
1965  "Enable greylisting filter",
1966  "",
1967  "YES"},
1968 
1969  /* Greylist mode */
1970  {CF_GREY_MODE, ZE_ENUM, ENUM_GREY_MODE, 0,
1971  "GREY_MODE",
1972  "STANDALONE",
1973  "Greylisting",
1974  "Greylist mode",
1975  "",
1976  "STANDALONE"},
1977 
1978  /* Remote Greylist Server Socket when running in CLIENT mode */
1979  {CF_GREY_SOCKET, ZE_STR, NULL, 256,
1980  "GREY_SOCKET",
1981  "inet:2012@127.0.0.1",
1982  "Greylisting",
1983  "Remote Greylist Server Socket when running in CLIENT mode",
1984  "-----",
1985  "inet:2012@127.0.0.1"},
1986 
1987  /* Timeout to connect go ze-grey server when running in CLIENT mode */
1988  {CF_GREY_CONNECT_TIMEOUT, ZE_INT, NULL, 0,
1989  "GREY_CONNECT_TIMEOUT",
1990  "10s",
1991  "Greylisting",
1992  "Timeout to connect go ze-grey server when running in CLIENT mode",
1993  "-----",
1994  "10s"},
1995 
1996  /* Greylist delay for normal messages */
1997  {CF_GREY_MIN_DELAY_NORMAL, ZE_INT, NULL, 0,
1998  "GREY_MIN_DELAY_NORMAL",
1999  "10m",
2000  "Greylisting",
2001  "Greylist delay for normal messages",
2002  "-----",
2003  "10m"},
2004 
2005  /* Greylist delay for null sender messages */
2007  "GREY_MIN_DELAY_NULLSENDER",
2008  "10m",
2009  "Greylisting",
2010  "Greylist delay for null sender messages",
2011  "-----",
2012  "10m"},
2013 
2014  /* Lifetime for pending entries (normal messages) */
2015  {CF_GREY_MAX_DELAY_NORMAL, ZE_INT, NULL, 0,
2016  "GREY_MAX_DELAY_NORMAL",
2017  "3d",
2018  "Greylisting",
2019  "Lifetime for pending entries (normal messages)",
2020  "-----",
2021  "3d"},
2022 
2023  /* Lifetime for pending entries (null sender messages) */
2025  "GREY_MAX_DELAY_NULLSENDER",
2026  "6h",
2027  "Greylisting",
2028  "Lifetime for pending entries (null sender messages)",
2029  "-----",
2030  "6h"},
2031 
2032  /* Lifetime for inactive whitelisted entries */
2034  "GREY_VALIDLIST_LIFETIME",
2035  "1w",
2036  "Greylisting",
2037  "Lifetime for inactive whitelisted entries",
2038  "-----",
2039  "1w"},
2040 
2041  /* Lifetime for inactive whitelisted entries */
2043  "GREY_WHITELIST_LIFETIME",
2044  "2w",
2045  "Greylisting",
2046  "Lifetime for inactive whitelisted entries",
2047  "-----",
2048  "2w"},
2049 
2050  /* Lifetime for blacklisted entries */
2052  "GREY_BLACKLIST_LIFETIME",
2053  "1d",
2054  "Greylisting",
2055  "Lifetime for blacklisted entries",
2056  "-----",
2057  "1d"},
2058 
2059  /* Max normal pending messages */
2061  "GREY_MAX_PENDING_NORMAL",
2062  "0",
2063  "Greylisting",
2064  "Max normal pending messages",
2065  "",
2066  "0"},
2067 
2068  /* Max null sender pending messages */
2070  "GREY_MAX_PENDING_NULLSENDER",
2071  "0",
2072  "Greylisting",
2073  "Max null sender pending messages",
2074  "",
2075  "0"},
2076 
2077  /* Enable/disable domain compatibility (sender domain/SMTP client domain) */
2078  {CF_GREY_COMPAT_DOMAIN_CHECK, ZE_ENUM, ENUM_NO_YES, 0,
2079  "GREY_COMPAT_DOMAIN_CHECK",
2080  "YES",
2081  "Greylisting",
2082  "Enable/disable domain compatibility (sender domain/SMTP client domain)",
2083  "-----",
2084  "YES"},
2085 
2086  /* How to construct IP part of ntuple */
2087  {CF_GREY_IP_COMPONENT, ZE_STR, NULL, 64,
2088  "GREY_IP_COMPONENT",
2089  "NET",
2090  "Greylisting",
2091  "How to construct IP part of ntuple",
2092  "NONE | FULL | NET",
2093  "NET"},
2094 
2095  /* How to construct FROM part of ntuple */
2096  {CF_GREY_FROM_COMPONENT, ZE_STR, NULL, 64,
2097  "GREY_FROM_COMPONENT",
2098  "HOST",
2099  "Greylisting",
2100  "How to construct FROM part of ntuple",
2101  "NONE | FULL | HOST | USER",
2102  "HOST"},
2103 
2104  /* How to construct TO part of ntuple */
2105  {CF_GREY_TO_COMPONENT, ZE_STR, NULL, 64,
2106  "GREY_TO_COMPONENT",
2107  "FULL",
2108  "Greylisting",
2109  "How to construct TO part of ntuple",
2110  "NONE | FULL | HOST | USER",
2111  "FULL"},
2112 
2113  /* Greylisting reply */
2114  {CF_GREY_REPLY, ZE_STR, NULL, 256,
2115  "GREY_REPLY",
2116  "451:4.3.2:Temporary failure ! Come back later, please !",
2117  "Greylisting",
2118  "Greylisting reply",
2119  "4nn:4.x.y:message",
2120  "451:4.3.2:Temporary failure ! Come back later, please !"},
2121 
2122  /* Greylist database cleanup interval */
2123  {CF_GREY_CLEANUP_INTERVAL, ZE_INT, NULL, 0,
2124  "GREY_CLEANUP_INTERVAL",
2125  "10m",
2126  "Greylisting",
2127  "Greylist database cleanup interval",
2128  "-----",
2129  "10m"},
2130 
2131  /* Which criteria utilise to purge greylisting databases ??? */
2132  {CF_GREY_DEWHITE_FLAGS, ZE_STR, NULL, 256,
2133  "GREY_DEWHITE_FLAGS",
2134  "DomainMismatch",
2135  "Greylisting",
2136  "Which criteria utilise to purge greylisting databases ???",
2137  "None BadResolve DomainMismatch BadRCPT SpamTrap BadMX BadClient Spammer All",
2138  "DomainMismatch"},
2139 
2140  /* The expired entries log file */
2141  {CF_GREY_LOG_FILE, ZE_STR, NULL, 256,
2142  "GREY_LOG_FILE",
2143  ZE_GREY_LOG,
2144  "Greylisting",
2145  "The expired entries log file",
2146  "",
2147  ZE_GREY_LOG},
2148 
2149  /* ze-greyd Listen Socket */
2150  {CF_GREYD_SOCKET_LISTEN, ZE_STR, NULL, 256,
2151  "GREYD_SOCKET_LISTEN",
2152  "inet:2012@0.0.0.0",
2153  "Greylisting - ze-greyd specific",
2154  "ze-greyd Listen Socket",
2155  "-----",
2156  "inet:2012@0.0.0.0"},
2157 
2158  /* syslog facility */
2159  {CF_GREYD_LOG_FACILITY, ZE_STR, NULL, 256,
2160  "GREYD_LOG_FACILITY",
2161  "local6",
2162  "Greylisting - ze-greyd specific",
2163  "syslog facility",
2164  "-----",
2165  "local6"},
2166 
2167  /* ze-greyd log level */
2168  {CF_GREYD_LOG_LEVEL, ZE_INT, NULL, 0,
2169  "GREYD_LOG_LEVEL",
2170  "10",
2171  "Greylisting - ze-greyd specific",
2172  "ze-greyd log level",
2173  "-----",
2174  "10"},
2175 
2176  /* ze-greyd working directory */
2177  {CF_GREYDDIR, ZE_STR, NULL, 256,
2178  "GREYDDIR",
2179  ZE_GREYDDIR,
2180  "Greylisting - ze-greyd specific",
2181  "ze-greyd working directory",
2182  "-----",
2183  ZE_GREYDDIR},
2184 
2185  /* ze-greyd pid file */
2186  {CF_GREYD_PID_FILE, ZE_STR, NULL, 256,
2187  "GREYD_PID_FILE",
2189  "Greylisting - ze-greyd specific",
2190  "ze-greyd pid file",
2191  "-----",
2192  ZE_GREYD_PID_FILE},
2193 
2194  /* Maximum inactivity time (after this connection will be closed) */
2195  {CF_GREYD_CLIENT_IDLE_MAX, ZE_INT, NULL, 0,
2196  "GREYD_CLIENT_IDLE_MAX",
2197  "300",
2198  "Greylisting - ze-greyd specific",
2199  "Maximum inactivity time (after this connection will be closed)",
2200  "-----",
2201  "300"},
2202 
2203  {-1,0,NULL,0,NULL,NULL,NULL,NULL}};
2204 
2207 #define __ZE_CFC_DEFS_H 1
2208 #endif
2209 
#define CF_REMOVE_HEADERS
Definition: cfh-defs.h:139
#define CF_RESOLVE_CACHE_ENABLE
Definition: cfh-defs.h:84
#define ZE_PID_FILE
Definition: defs.h:62
#define CF_GREY_MAX_DELAY_NULLSENDER
Definition: cfh-defs.h:197
#define CF_LOG_LOAD
Definition: cfh-defs.h:61
#define CF_CPU_IDLE_HARD_LIMIT
Definition: cfh-defs.h:44
#define CF_SPOOLDIR
Definition: cfh-defs.h:68
#define CF_SCANNER_MAX_MSG_SIZE
Definition: cfh-defs.h:102
#define CF_CHECK_RESOLVE_FAIL
Definition: cfh-defs.h:185
#define CF_CHECK_EMPTY_CONNECTIONS
Definition: cfh-defs.h:146
#define CF_XFILE_SUBJECT_TAG
Definition: cfh-defs.h:95
#define CF_GREYD_CLIENT_IDLE_MAX
Definition: cfh-defs.h:216
#define CF_GREY_TO_COMPONENT
Definition: cfh-defs.h:206
#define CF_CHECK_SPAMTRAP_HISTORY
Definition: cfh-defs.h:154
#define CF_LOG_ATTACHMENTS
Definition: cfh-defs.h:59
#define CF_GREY_WHITELIST_LIFETIME
Definition: cfh-defs.h:199
int cf_add_id_enum(int id, char *name, char **opt, char *val)
Definition: ze-cf.c:514
#define CF_CTRL_ACCESS
Definition: cfh-defs.h:50
#define CF_XFILES_FILE
Definition: cfh-defs.h:93
#define CF_WORKROOT
Definition: cfh-defs.h:66
#define CF_GREY_BLACKLIST_LIFETIME
Definition: cfh-defs.h:200
#define ZE_SMSOCKFILE
Definition: defs.h:61
#define CF_GREYD_LOG_LEVEL
Definition: cfh-defs.h:213
#define VERSION
Definition: version.h:25
#define CF_XSTATUS_HEADER_UNSURE_CONDITION
Definition: cfh-defs.h:134
#define CF_FILE_DESCRIPTORS
Definition: cfh-defs.h:39
int cf_set_val(int id, char *val)
Definition: ze-cf.c:691
void cf_defaults()
Definition: cfc-defs.h:313
#define CF_ARCHIVE
Definition: cfh-defs.h:75
#define CF_CHECK_NB_RCPT
Definition: cfh-defs.h:157
#define CF_GROUP
Definition: cfh-defs.h:38
#define CF_RESOLVE_CACHE_CHECK
Definition: cfh-defs.h:86
#define CF_GREYD_LOG_FACILITY
Definition: cfh-defs.h:212
#define CF_REJECT_SHORT_BODIES
Definition: cfh-defs.h:178
#define CF_MAX_CONN_OPEN
Definition: cfh-defs.h:145
#define CF_PRESENCE
Definition: cfh-defs.h:32
#define CF_BAYES_MAX_PART_SIZE
Definition: cfh-defs.h:107
#define ZE_WDBDIR
Definition: defs.h:35
#define CF_POLICY_CONFLICT
Definition: cfh-defs.h:81
#define CF_CDBDIR
Definition: cfh-defs.h:78
#define CF_DB_BAYES
Definition: cfh-defs.h:112
#define CF_CHECK_RCPT_ACCESS
Definition: cfh-defs.h:151
#define CF_XSTATUS_HEADER_LO_CONDITION
Definition: cfh-defs.h:133
#define CF_SCANNER_SAVE
Definition: cfh-defs.h:103
#define ZE_WORKROOT
Definition: defs.h:32
#define CF_GREY_SOCKET
Definition: cfh-defs.h:192
#define CF_CTRL_SOCKET
Definition: cfh-defs.h:49
#define ZE_WORKDIR
Definition: defs.h:33
#define CF_MAX_EMPTY_CONN
Definition: cfh-defs.h:147
#define ZE_CDBDIR
Definition: defs.h:34
#define CF_MAX_FROM_RCPT
Definition: cfh-defs.h:166
#define CF_DNS_URLBL
Definition: cfh-defs.h:115
#define CF_ORACLE_STATS_FILE
Definition: cfh-defs.h:127
#define CF_RESOLVE_FAIL_NETCLASS
Definition: cfh-defs.h:188
#define CF_CHECK_RCPT_RATE
Definition: cfh-defs.h:155
#define ZE_GREY_LOG
Definition: defs.h:46
#define CF_LOG_FACILITY
Definition: cfh-defs.h:55
int cf_add_id_int(int id, char *name, char *val)
Definition: ze-cf.c:592
#define CF_REJECT_DATE_IN_PAST
Definition: cfh-defs.h:177
#define CF_SCANNER_SOCK
Definition: cfh-defs.h:98
#define CF_CHECK_FROM_NB_MSGS
Definition: cfh-defs.h:169
#define CF_LOG_LEVEL
Definition: cfh-defs.h:56
#define CF_GREY_IP_COMPONENT
Definition: cfh-defs.h:204
#define STRING(a)
Definition: ze-cf.c:42
#define CF_BAYES_NB_TOKENS
Definition: cfh-defs.h:109
#define CF_MAX_RCPT_RATE
Definition: cfh-defs.h:156
#define CF_ZE_HOSTNAME
Definition: cfh-defs.h:31
#define CF_XFILES
Definition: cfh-defs.h:92
#define CF_CHECK_CONN_RATE
Definition: cfh-defs.h:142
#define CF_CHECK_NB_FROM_RCPT
Definition: cfh-defs.h:165
#define CF_SPAM_ORACLE
Definition: cfh-defs.h:123
#define CF_GREY_MIN_DELAY_NORMAL
Definition: cfh-defs.h:194
#define CF_SCANNER_TIMEOUT
Definition: cfh-defs.h:100
#define ZE_XFILES_LOG
Definition: defs.h:43
#define CF_MYSELF
Definition: cfh-defs.h:30
#define CF_DB_RCPT
Definition: cfh-defs.h:152
#define CF_ZE_SUBJECT
Definition: cfh-defs.h:91
#define CF_REJECT_BAD_NULL_SENDER
Definition: cfh-defs.h:173
#define CF_CHECK_FROM_RCPT_RATE
Definition: cfh-defs.h:163
#define CF_SCANNER_REJECT_ON_ERROR
Definition: cfh-defs.h:101
#define CF_VERSION
Definition: cfh-defs.h:29
#define CF_LOG_LEVEL_ORACLE
Definition: cfh-defs.h:126
Definition: ze-cf.c:137
#define CF_POLICY_URL
Definition: cfh-defs.h:35
#define CF_NOTIFY_SENDER
Definition: cfh-defs.h:88
#define CF_GREYD_SOCKET_LISTEN
Definition: cfh-defs.h:211
#define CF_REGEX_LOG_FILE
Definition: cfh-defs.h:122
#define CF_CPU_IDLE_SOFT_LIMIT
Definition: cfh-defs.h:43
#define CF_BAYES_MAX_MESSAGE_SIZE
Definition: cfh-defs.h:106
#define ZE_DOUBLE
Definition: ze-cf.c:49
#define CF_MAX_BAD_RESOLVE
Definition: cfh-defs.h:187
#define CF_MAX_RCPT
Definition: cfh-defs.h:158
#define CF_XSTATUS_HEADER
Definition: cfh-defs.h:131
#define ZE_VIRUS_LOG
Definition: defs.h:44
#define CF_CHECK_BAD_SENDER_MX
Definition: cfh-defs.h:174
#define CF_RESOLVE_CACHE_SYNC
Definition: cfh-defs.h:85
#define CF_DEFAULT_BAD_MX_REPLY
Definition: cfh-defs.h:175
#define CF_MAX_FROM_RCPT_RATE
Definition: cfh-defs.h:164
#define CF_BAYESIAN_FILTER
Definition: cfh-defs.h:105
#define CF_DB_CACHE_SIZE
Definition: cfh-defs.h:79
#define CF_MAX_MSGS
Definition: cfh-defs.h:162
#define CF_REMOVE_SCORES
Definition: cfh-defs.h:140
#define CF_DNS_IPRBWL
Definition: cfh-defs.h:141
#define CF_SPAM_REGEX_MAX_MIME_SIZE
Definition: cfh-defs.h:120
#define CF_DAEMON_FILTER_DISABLE
Definition: cfh-defs.h:36
#define CF_DB_POLICY
Definition: cfh-defs.h:80
#define LOG_LEVEL
Definition: ze-chkcontent.c:32
#define CF_SCORE_ON_SUBJECT_TAG
Definition: cfh-defs.h:130
#define CF_TO_PASS_TOKEN
Definition: cfh-defs.h:83
#define ZE_STATS_FILE
Definition: defs.h:42
#define CF_USER
Definition: cfh-defs.h:37
#define CF_SCANNER_ACTION
Definition: cfh-defs.h:97
#define CF_GREY_CONNECT_TIMEOUT
Definition: cfh-defs.h:193
#define CF_MAX_MSG_RATE
Definition: cfh-defs.h:160
#define CF_LOG_THROTTLE
Definition: cfh-defs.h:60
#define CF_CONFDIR
Definition: cfh-defs.h:51
#define CF_XSTATUS_HEADER_HI_CONDITION
Definition: cfh-defs.h:132
#define CF_MAX_FROM_MSG_RATE
Definition: cfh-defs.h:168
#define CF_USE_SELECT_LIMIT
Definition: cfh-defs.h:42
#define CF_GREY_DEWHITE_FLAGS
Definition: cfh-defs.h:209
#define CF_PID_FILE
Definition: cfh-defs.h:69
#define CF_GREY_CHECK
Definition: cfh-defs.h:190
#define CF_AUTO_RELOAD_TABLES
Definition: cfh-defs.h:53
#define CF_MODDIR
Definition: cfh-defs.h:76
#define CF_ORACLE_SCORES_FILE
Definition: cfh-defs.h:124
#define ZE_QUARANTINE_LOG
Definition: defs.h:47
#define CF_ENCODING_BINARY
Definition: cfh-defs.h:181
#define CF_REJECT_BADEHLO
Definition: cfh-defs.h:171
int cf_add_id_str(int id, char *name, int len, char *val)
Definition: ze-cf.c:554
#define CF_NOTIFY_RCPT
Definition: cfh-defs.h:89
#define CF_FROM_PASS_TOKEN
Definition: cfh-defs.h:82
#define CF_DUMP_FOUND_REGEX
Definition: cfh-defs.h:121
#define CF_SCORE_ON_SUBJECT
Definition: cfh-defs.h:129
#define CF_NO_HEADERS
Definition: cfh-defs.h:184
#define CF_QUARANTINE_ADD_FROM_LINE
Definition: cfh-defs.h:73
#define CF_NO_FROM_HEADERS
Definition: cfh-defs.h:183
#define CF_GREYDDIR
Definition: cfh-defs.h:214
#define CF_GREY_FROM_COMPONENT
Definition: cfh-defs.h:205
#define CF_LOG_GREY_CLEANING
Definition: cfh-defs.h:62
#define CF_CLUSTER
Definition: cfh-defs.h:58
#define CF_XFILE_SAVE_MSG
Definition: cfh-defs.h:94
#define CF_SM_TIMEOUT
Definition: cfh-defs.h:47
#define CF_QUARANTINE_LOG_FILE
Definition: cfh-defs.h:74
#define CF_STATS_INTERVAL
Definition: cfh-defs.h:64
#define CF_GREY_MAX_DELAY_NORMAL
Definition: cfh-defs.h:196
#define CF_FD_FREE_HARD_LIMIT
Definition: cfh-defs.h:41
#define CF_XFILES_LOG_FILE
Definition: cfh-defs.h:96
#define CF_DROP_DELIVERY_NOTIFICATION_REQUEST
Definition: cfh-defs.h:180
#define CF_GREY_MAX_PENDING_NORMAL
Definition: cfh-defs.h:201
#define CF_GREY_MIN_DELAY_NULLSENDER
Definition: cfh-defs.h:195
#define CF_CTRL_CHANNEL_ENABLE
Definition: cfh-defs.h:48
#define CF_GREY_COMPAT_DOMAIN_CHECK
Definition: cfh-defs.h:203
#define CF_DB_URLBL
Definition: cfh-defs.h:114
#define CF_CHECK_OPEN_CONNECTIONS
Definition: cfh-defs.h:144
int cf_add_id_double(int id, char *name, char *val)
Definition: ze-cf.c:624
#define CF_ACTIVE_LEARNING_MARGIN
Definition: cfh-defs.h:111
#define CF_WDBDIR
Definition: cfh-defs.h:77
#define CF_GREY_VALIDLIST_LIFETIME
Definition: cfh-defs.h:198
#define CF_RESOLVE_FORGED_NETCLASS
Definition: cfh-defs.h:189
#define CF_REGEX_FILE
Definition: cfh-defs.h:117
#define CF_ORACLE_COUNTERS_FILE
Definition: cfh-defs.h:128
#define CF_ZE_SENDER
Definition: cfh-defs.h:90
#define CF_CHECK_BADRCPTS
Definition: cfh-defs.h:149
#define CF_MAX_CONN_RATE
Definition: cfh-defs.h:143
#define ZE_REGEX_LOG
Definition: defs.h:45
#define CF_MAX_OPEN_CONNECTIONS
Definition: cfh-defs.h:45
#define CF_MIN_BODY_LENGTH
Definition: cfh-defs.h:179
#define CF_REGEX_MAX_SCORE
Definition: cfh-defs.h:118
#define CF_FOOTER
Definition: cfh-defs.h:33
#define CF_REJECT_DATE_IN_FUTURE
Definition: cfh-defs.h:176
#define ZE_GREYD_PID_FILE
Definition: defs.h:39
#define CF_MAX_BADRCPTS
Definition: cfh-defs.h:150
#define CF_BADEHLO_CHECKS
Definition: cfh-defs.h:172
#define CF_GREY_MODE
Definition: cfh-defs.h:191
#define ZE_GREYDDIR
Definition: defs.h:38
#define ZE_ENUM
Definition: ze-cf.c:47
#define CF_LOG_SEVERITY
Definition: cfh-defs.h:57
#define CF_DUMP_COUNTERS
Definition: cfh-defs.h:63
#define CF_VIRUS_LOG_FILE
Definition: cfh-defs.h:104
#define CF_CHECK_NB_MSGS
Definition: cfh-defs.h:161
#define CF_XSTATUS_REJECT_CONDITION
Definition: cfh-defs.h:136
#define CF_CLEANUP_INTERVAL
Definition: cfh-defs.h:71
#define ZE_INT
Definition: ze-cf.c:48
#define CF_CHECK_FROM_MSG_RATE
Definition: cfh-defs.h:167
#define CF_SPAM_REGEX
Definition: cfh-defs.h:116
#define ZE_SPOOLDIR
Definition: defs.h:30
#define CF_FILTER_URL
Definition: cfh-defs.h:34
#define CF_QUARANTINE_LIFETIME
Definition: cfh-defs.h:72
#define CF_DELAY_CHECKS
Definition: cfh-defs.h:148
#define CF_NO_TO_HEADERS
Definition: cfh-defs.h:182
#define CF_MAX_FROM_MSGS
Definition: cfh-defs.h:170
#define CF_SOCKET
Definition: cfh-defs.h:46
#define CF_HISTORY_ENTRIES
Definition: cfh-defs.h:65
#define CF_SCANNER_PROTOCOL
Definition: cfh-defs.h:99
#define CF_GREY_REPLY
Definition: cfh-defs.h:207
#define CF_GREY_MAX_PENDING_NULLSENDER
Definition: cfh-defs.h:202
#define CF_CHECK_MSG_RATE
Definition: cfh-defs.h:159
#define CF_ERROR_MSG_FILE
Definition: cfh-defs.h:52
#define CF_MODULES_CF
Definition: cfh-defs.h:54
#define CF_GREY_LOG_FILE
Definition: cfh-defs.h:210
#define CF_SPAMTRAP_RESULT
Definition: cfh-defs.h:153
#define CF_XSTATUS_HEADER_HAM_CONDITION
Definition: cfh-defs.h:135
#define CF_WORKDIR
Definition: cfh-defs.h:67
#define CF_CHECK_RESOLVE_FORGED
Definition: cfh-defs.h:186
#define CF_RESOLVE_CACHE_EXPIRE
Definition: cfh-defs.h:87
#define CF_ORACLE_DATA_FILE
Definition: cfh-defs.h:125
#define CF_SPAM_REGEX_MAX_MSG_SIZE
Definition: cfh-defs.h:119
#define CF_XSTATUS_QUARANTINE_CONDITION
Definition: cfh-defs.h:138
#define CF_FD_FREE_SOFT_LIMIT
Definition: cfh-defs.h:40
#define CF_BAYES_UNKNOWN_TOKEN_PROB
Definition: cfh-defs.h:110
#define CF_GREYD_PID_FILE
Definition: cfh-defs.h:215
#define CF_SPAM_URLBL
Definition: cfh-defs.h:113
#define CF_BAYES_HAM_SPAM_RATIO
Definition: cfh-defs.h:108
#define ZE_STR
Definition: ze-cf.c:46
#define CF_GREY_CLEANUP_INTERVAL
Definition: cfh-defs.h:208
#define CF_XSTATUS_REJECT_ONLY_UNKNOWN
Definition: cfh-defs.h:137
#define CF_STATS_FILE
Definition: cfh-defs.h:70