Propagate more error codes internally
[exim.git] / src / src / macros.h
index 9f59f7acde369442bf3f9a3c043fb81969c66599..2085c3f4152c8414acf6753a218ab9f1b03eea65 100644 (file)
@@ -2,7 +2,7 @@
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) University of Cambridge 1995 - 2012 */
+/* Copyright (c) University of Cambridge 1995 - 2014 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 
@@ -156,6 +156,10 @@ as long as the maximum path length. */
 #define BIG_BUFFER_SIZE 16384
 #endif
 
+/* header size of pipe content 
+   currently: char id, char subid, char[5] length */
+#define PIPE_HEADER_SIZE 7
+
 /* This limits the length of data returned by local_scan(). Because it is
 written on the spool, it gets read into big_buffer. */
 
@@ -439,6 +443,7 @@ set all the bits in a multi-word selector. */
                        LX_rejected_header         | \
                        LX_sender_verify_fail      | \
                        LX_smtp_confirmation       | \
+                       LX_tls_certificate_verified| \
                        LX_tls_cipher) & 0x7fffffff)
 
 /* Private error numbers for delivery failures, set negative so as not
@@ -491,6 +496,7 @@ to conflict with system errno values. */
 #define ERRNO_MAIL4XX        (-45)   /* MAIL gave 4xx error */
 #define ERRNO_DATA4XX        (-46)   /* DATA gave 4xx error */
 #define ERRNO_PROXYFAIL      (-47)   /* Negotiation failed for proxy configured host */
+#define ERRNO_AUTHPROB       (-48)   /* Autheticator "other" failure */
 
 /* These must be last, so all retry deferments can easily be identified */
 
@@ -788,6 +794,27 @@ enum {
 #define topt_no_body            0x040  /* Omit body */
 #define topt_escape_headers     0x080  /* Apply escape check to headers */
 
+/* Flags for recipient_block, used in DSN support */
+
+#define rf_dsnlasthop           0x01  /* Do not propagate DSN any further */
+#define rf_notify_never         0x02  /* NOTIFY= settings */
+#define rf_notify_success       0x04
+#define rf_notify_failure       0x08
+#define rf_notify_delay         0x10
+
+#define rf_dsnflags  (rf_notify_never | rf_notify_success | \
+                      rf_notify_failure | rf_notify_delay)
+
+/* DSN RET types */
+
+#define dsn_ret_full            1
+#define dsn_ret_hdrs            2
+
+#define dsn_support_unknown     0
+#define dsn_support_yes         1
+#define dsn_support_no          2
+
+
 /* Codes for the host_find_failed and host_all_ignored options. */
 
 #define hff_freeze   0
@@ -826,7 +853,7 @@ enum { ACL_WHERE_RCPT,       /* Some controls are for RCPT only */
        ACL_WHERE_MIME,       /* ) implemented by <= WHERE_NOTSMTP           */
        ACL_WHERE_DKIM,       /* )                                           */
        ACL_WHERE_DATA,       /* )                                           */
-#ifdef EXPERIMENTAL_PRDR
+#ifndef DISABLE_PRDR
        ACL_WHERE_PRDR,       /* )                                           */
 #endif
        ACL_WHERE_NOTSMTP,    /* )                                           */