Merge branch 'patch-3' of https://github.com/bes-internal/exim into master_dmarc_doc
[users/heiko/exim.git] / src / src / macros.h
index 9889d681301dd5e91ee656b6504fce5ad25ec29d..a73bb0ba67feab43c9b274a107a8f99629f52d32 100644 (file)
@@ -81,7 +81,7 @@ as unsigned. */
 a no-op once an SSL session is in progress. */
 
 #ifdef SUPPORT_TLS
-#define mac_smtp_fflush() if (tls_active < 0) fflush(smtp_out);
+#define mac_smtp_fflush() if (tls_in.active < 0) fflush(smtp_out);
 #else
 #define mac_smtp_fflush() fflush(smtp_out);
 #endif
@@ -196,7 +196,7 @@ enum { RESET_NEXT, RESET_ANSWERS, RESET_AUTHORITY, RESET_ADDITIONAL };
 
 enum { tod_log, tod_log_bare, tod_log_zone, tod_log_datestamp_daily,
        tod_log_datestamp_monthly, tod_zone, tod_full, tod_bsdin,
-       tod_mbx, tod_epoch, tod_zulu };
+       tod_mbx, tod_epoch, tod_epoch_l, tod_zulu };
 
 /* For identifying types of driver */
 
@@ -222,6 +222,9 @@ enum {
   ERRMESS_TOOMANYRECIP,     /* Too many recipients */
   ERRMESS_LOCAL_SCAN,       /* Rejected by local scan */
   ERRMESS_LOCAL_ACL         /* Rejected by non-SMTP ACL */
+#ifdef EXPERIMENTAL_DMARC
+ ,ERRMESS_DMARC_FORENSIC    /* DMARC Forensic Report */
+#endif
 };
 
 /* Error handling styles - set by option, and apply only when receiving
@@ -409,6 +412,8 @@ set all the bits in a multi-word selector. */
 #define LX_tls_peerdn                  0x80400000
 #define LX_tls_sni                     0x80800000
 #define LX_unknown_in_list             0x81000000
+#define LX_8bitmime                    0x82000000
+#define LX_smtp_mailauth               0x84000000
 
 #define L_default     (L_connection_reject        | \
                        L_delay_delivery           | \
@@ -424,6 +429,7 @@ set all the bits in a multi-word selector. */
 #define LX_default   ((LX_acl_warn_skipped        | \
                        LX_rejected_header         | \
                        LX_sender_verify_fail      | \
+                       LX_smtp_confirmation       | \
                        LX_tls_cipher) & 0x7fffffff)
 
 /* Private error numbers for delivery failures, set negative so as not
@@ -624,7 +630,9 @@ for booleans that are kept in one bit. */
 #define opt_public  0x200      /* Stored in the main instance block */
 #define opt_set     0x400      /* Option is set */
 #define opt_secure  0x800      /* "hide" prefix used */
-#define opt_mask    0x0ff
+#define opt_rep_con 0x1000     /* Can be appended to by a repeated line (condition) */
+#define opt_rep_str 0x2000     /* Can be appended to by a repeated line (string) */
+#define opt_mask    0x00ff
 
 /* Verify types when directing and routing */
 
@@ -808,6 +816,9 @@ 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
+       ACL_WHERE_PRDR,       /* )                                           */
+#endif
        ACL_WHERE_NOTSMTP,    /* )                                           */
 
        ACL_WHERE_AUTH,       /* These remaining ones are not currently    */
@@ -820,7 +831,10 @@ enum { ACL_WHERE_RCPT,       /* Some controls are for RCPT only */
        ACL_WHERE_NOTQUIT,
        ACL_WHERE_QUIT,
        ACL_WHERE_STARTTLS,
-       ACL_WHERE_VRFY
+       ACL_WHERE_VRFY,
+
+       ACL_WHERE_DELIVERY,
+       ACL_WHERE_UNKNOWN     /* Currently used by a ${acl:name} expansion */
      };
 
 /* Situations for spool_write_header() */