-/* $Cambridge: exim/src/src/macros.h,v 1.1 2004/10/07 10:39:01 ph10 Exp $ */
+/* $Cambridge: exim/src/src/macros.h,v 1.2.2.3 2004/12/02 09:15:11 tom Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
into big_buffer_size and in some circumstances increased. It should be at least
as long as the maximum path length. */
-#if defined PATH_MAX && PATH_MAX > 1024
+#if defined PATH_MAX && PATH_MAX > 16384
#define BIG_BUFFER_SIZE PATH_MAX
-#elif defined MAXPATHLEN && MAXPATHLEN > 1024
+#elif defined MAXPATHLEN && MAXPATHLEN > 16384
#define BIG_BUFFER_SIZE MAXPATHLEN
#else
-#define BIG_BUFFER_SIZE 1024
+#define BIG_BUFFER_SIZE 16384
#endif
/* This limits the length of data returned by local_scan(). Because it is
router, which were chosen to represent the standard situation for users'
.forward files. */
-#define RDO_BLACKHOLE 0x00000001 /* Forbid :blackhole: */
-#define RDO_DEFER 0x00000002 /* Allow :defer: or "defer" */
-#define RDO_EACCES 0x00000004 /* Ignore EACCES */
-#define RDO_ENOTDIR 0x00000008 /* Ignore ENOTDIR */
-#define RDO_EXISTS 0x00000010 /* Forbid "exists" in expansion in filter */
-#define RDO_FAIL 0x00000020 /* Allow :fail: or "fail" */
-#define RDO_FILTER 0x00000040 /* Allow a filter script */
-#define RDO_FREEZE 0x00000080 /* Allow "freeze" */
-#define RDO_INCLUDE 0x00000100 /* Forbid :include: */
-#define RDO_LOG 0x00000200 /* Forbid "log" */
-#define RDO_LOOKUP 0x00000400 /* Forbid "lookup" in expansion in filter */
-#define RDO_PERL 0x00000800 /* Forbid "perl" in expansion in filter */
-#define RDO_READFILE 0x00001000 /* Forbid "readfile" in exp in filter */
-#define RDO_READSOCK 0x00002000 /* Forbid "readsocket" in exp in filter */
-#define RDO_RUN 0x00004000 /* Forbid "run" in expansion in filter */
-#define RDO_REALLOG 0x00008000 /* Really do log (not testing/verifying) */
-#define RDO_REWRITE 0x00010000 /* Rewrite generated addresses */
+#define RDO_BLACKHOLE 0x00000001 /* Forbid :blackhole: */
+#define RDO_DEFER 0x00000002 /* Allow :defer: or "defer" */
+#define RDO_EACCES 0x00000004 /* Ignore EACCES */
+#define RDO_ENOTDIR 0x00000008 /* Ignore ENOTDIR */
+#define RDO_EXISTS 0x00000010 /* Forbid "exists" in expansion in filter */
+#define RDO_FAIL 0x00000020 /* Allow :fail: or "fail" */
+#define RDO_FILTER 0x00000040 /* Allow a filter script */
+#define RDO_FREEZE 0x00000080 /* Allow "freeze" */
+#define RDO_INCLUDE 0x00000100 /* Forbid :include: */
+#define RDO_LOG 0x00000200 /* Forbid "log" */
+#define RDO_LOOKUP 0x00000400 /* Forbid "lookup" in expansion in filter */
+#define RDO_PERL 0x00000800 /* Forbid "perl" in expansion in filter */
+#define RDO_READFILE 0x00001000 /* Forbid "readfile" in exp in filter */
+#define RDO_READSOCK 0x00002000 /* Forbid "readsocket" in exp in filter */
+#define RDO_RUN 0x00004000 /* Forbid "run" in expansion in filter */
+#define RDO_REALLOG 0x00008000 /* Really do log (not testing/verifying) */
+#define RDO_REWRITE 0x00010000 /* Rewrite generated addresses */
+#define RDO_EXIM_FILTER 0x00020000 /* Forbid Exim filters */
+#define RDO_SIEVE_FILTER 0x00040000 /* Forbid Sieve filters */
/* This is the set that apply to expansions in filters */
enum { RDON_BLACKHOLE, RDON_DEFER, RDON_EACCES, RDON_ENOTDIR, RDON_EXISTS,
RDON_FAIL, RDON_FILTER, RDON_FREEZE, RDON_INCLUDE, RDON_LOG, RDON_LOOKUP,
RDON_PERL, RDON_READFILE, RDON_READSOCK, RDON_RUN, RDON_REALLOG,
- RDON_REWRITE };
+ RDON_REWRITE, RDON_EXIM_FILTER, RDON_SIEVE_FILTER };
/* Results of filter or forward file processing. Some are only from a filter;
some are only from a forward file. */
#define htype_add_top 'a'
#define htype_add_rec 'r'
#define htype_add_bot 'z'
+#define htype_add_rfc 'f'
/* Types of item in options lists. These are the bottom 8 bits of the "type"
field, which is an int. The opt_void value is used for entries in tables that
order without checking carefully! Furthermore, remember to keep these in step
with the tables of names and response codes in globals.c. */
+/* FIXME: the #ifdef below does not work here. Why? */
+
enum { ACL_WHERE_RCPT, /* Some controls are for RCPT only */
ACL_WHERE_MAIL, /* ) */
ACL_WHERE_PREDATA, /* ) There are several tests for "in message", */
- ACL_WHERE_DATA, /* ) implemented by <= WHERE_NOTSMTP */
- ACL_WHERE_NOTSMTP, /* ) */
+ /* ) implemented by <= WHERE_NOTSMTP */
+ /* ) */
+#ifdef WITH_CONTENT_SCAN
+ ACL_WHERE_MIME,
+#endif
+ ACL_WHERE_DATA,
+ ACL_WHERE_NOTSMTP,
ACL_WHERE_AUTH, /* These remaining ones are not currently */
ACL_WHERE_CONNECT, /* required to be in a special order so they */