X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/f3f065bbe8b7d7fdc4d46dbfa063ae4dfb05bfd7..846726c5a374d833fb5211dde62ae6bceb6841c7:/src/src/macros.h diff --git a/src/src/macros.h b/src/src/macros.h index f73ce63ac..3ec94bc6d 100644 --- a/src/src/macros.h +++ b/src/src/macros.h @@ -1,10 +1,8 @@ -/* $Cambridge: exim/src/src/macros.h,v 1.31 2007/01/31 16:52:12 ph10 Exp $ */ - /************************************************* * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2007 */ +/* Copyright (c) University of Cambridge 1995 - 2012 */ /* See the file NOTICE for conditions of use and distribution. */ @@ -15,6 +13,12 @@ a string as a text string. This is sometimes useful for debugging output. */ #define mac_expanded_string(s) mac_string(s) +/* When running in the test harness, the load average is fudged. */ + +#define OS_GETLOADAVG() \ + (running_in_test_harness? (test_harness_load_avg += 10) : os_getloadavg()) + + /* The address_item structure has a word full of 1-bit flags. These macros manipulate them. */ @@ -68,11 +72,16 @@ as unsigned. */ ((uschar)(c) > 127 && print_topbitchars)) +/* Convenience for testing strings */ + +#define streqic(Foo, Bar) (strcmpic(Foo, Bar) == 0) + + /* When built with TLS support, the act of flushing SMTP output becomes 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 @@ -90,13 +99,17 @@ don't make the file descriptors two-way. */ /* A macro to simplify testing bits in lookup types */ -#define mac_islookup(a,b) ((lookup_list[a].type & (b)) != 0) +#define mac_islookup(a,b) ((lookup_list[a]->type & (b)) != 0) /* Debugging control */ #define DEBUG(x) if ((debug_selector & (x)) != 0) #define HDEBUG(x) if (host_checking || (debug_selector & (x)) != 0) +/* The default From: text for DSNs */ + +#define DEFAULT_DSN_FROM "Mail Delivery System " + /* The size of the vector for saving/restoring address expansion pointers while verifying. This has to be explicit because it is referenced in more than one source module. */ @@ -181,8 +194,9 @@ enum { RESET_NEXT, RESET_ANSWERS, RESET_AUTHORITY, RESET_ADDITIONAL }; /* Argument values for the time-of-day function */ -enum { tod_log, tod_log_bare, tod_log_zone, tod_log_datestamp, - tod_zone, tod_full, tod_bsdin, tod_mbx, tod_epoch, tod_zulu }; +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_epoch_l, tod_zulu }; /* For identifying types of driver */ @@ -393,7 +407,8 @@ set all the bits in a multi-word selector. */ #define LX_tls_certificate_verified 0x80100000 #define LX_tls_cipher 0x80200000 #define LX_tls_peerdn 0x80400000 -#define LX_unknown_in_list 0x80800000 +#define LX_tls_sni 0x80800000 +#define LX_unknown_in_list 0x81000000 #define L_default (L_connection_reject | \ L_delay_delivery | \ @@ -609,7 +624,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 */ @@ -689,7 +706,6 @@ local_scan.h */ #define LOG_MAIN 1 /* Write to the main log */ #define LOG_PANIC 2 /* Write to the panic log */ #define LOG_PANIC_DIE 6 /* Write to the panic log and then die */ -#define LOG_PROCESS 8 /* Write to the process log */ #define LOG_REJECT 16 /* Write to the reject log, with headers */ #define LOG_SENDER 32 /* Add raw sender to the message */ #define LOG_RECIPIENTS 64 /* Add raw recipients to the message */ @@ -697,6 +713,9 @@ local_scan.h */ #define LOG_CONFIG_FOR (256+128) /* Add " for" instead of ":\n" */ #define LOG_CONFIG_IN (512+128) /* Add " in line x[ of file y]" */ +/* and for debug_bits() logging action control: */ +#define DEBUG_FROM_CONFIG 0x0001 + /* SMTP command identifiers for the smtp_connection_had field that records the most recent SMTP commands. Must be kept in step with the list of names in smtp_in.c that is used for creating the smtp_no_mail logging action. SCH_NONE @@ -728,7 +747,10 @@ enum { enum { MSG_DELIVER, MSG_FREEZE, MSG_REMOVE, MSG_THAW, MSG_ADD_RECIPIENT, MSG_MARK_ALL_DELIVERED, MSG_MARK_DELIVERED, MSG_EDIT_SENDER, - MSG_SHOW_BODY, MSG_SHOW_HEADER, MSG_SHOW_LOG, MSG_LOAD }; + MSG_SHOW_COPY, MSG_LOAD, + /* These ones must be last: a test for >= MSG_SHOW_BODY is used + to test for actions that list individual spool files. */ + MSG_SHOW_BODY, MSG_SHOW_HEADER, MSG_SHOW_LOG }; /* Returns from the spool_read_header() function */ @@ -750,13 +772,14 @@ enum { #define topt_no_body 0x040 /* Omit body */ #define topt_escape_headers 0x080 /* Apply escape check to headers */ -/* Codes for the host_find_failed option. */ +/* Codes for the host_find_failed and host_all_ignored options. */ #define hff_freeze 0 #define hff_defer 1 #define hff_pass 2 #define hff_decline 3 #define hff_fail 4 +#define hff_ignore 5 /* Router information flags */ @@ -785,6 +808,7 @@ 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_MIME, /* ) implemented by <= WHERE_NOTSMTP */ + ACL_WHERE_DKIM, /* ) */ ACL_WHERE_DATA, /* ) */ ACL_WHERE_NOTSMTP, /* ) */ @@ -795,9 +819,12 @@ enum { ACL_WHERE_RCPT, /* Some controls are for RCPT only */ ACL_WHERE_HELO, ACL_WHERE_MAILAUTH, ACL_WHERE_NOTSMTP_START, + ACL_WHERE_NOTQUIT, ACL_WHERE_QUIT, ACL_WHERE_STARTTLS, - ACL_WHERE_VRFY + ACL_WHERE_VRFY, + + ACL_WHERE_EXPANSION /* Currently used by a ${acl:name} expansion */ }; /* Situations for spool_write_header() */