X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/9e160d8100cd15517a3444c1ad8ab81e51399582..7d2f2d360f5a8ac6e0055074db813c3c3cfbeeb4:/src/src/structs.h diff --git a/src/src/structs.h b/src/src/structs.h index ac3efa587..aa394ac73 100644 --- a/src/src/structs.h +++ b/src/src/structs.h @@ -333,6 +333,7 @@ typedef struct router_instance { BOOL retry_use_local_part; /* Just what it says */ BOOL same_domain_copy_routing; /* TRUE => copy routing for same domain */ BOOL self_rewrite; /* TRUE to rewrite headers if making local */ + uschar *set; /* Variable = value to set; list */ BOOL suffix_optional; /* As it says */ BOOL verify_only; /* Skip this router if not verifying */ BOOL verify_recipient; /* Use this router when verifying a recipient*/ @@ -432,6 +433,7 @@ typedef struct auth_info { int); /* sizeof buffer */ void (*version_report)( /* diagnostic version reporting */ FILE *); /* I/O stream to print to */ + void (*macros_create)(void); /* feature-macro creation */ } auth_info; @@ -444,6 +446,7 @@ typedef struct ip_address_item { int port; BOOL v6_include_v4; /* Used in the daemon */ uschar address[46]; + uschar * log; /* portion of "listening on" log line */ } ip_address_item; /* Structure for chaining together arbitrary strings. */ @@ -509,16 +512,17 @@ typedef struct address_item_propagated { uschar *errors_address; /* where to send errors (NULL => sender) */ header_line *extra_headers; /* additional headers */ uschar *remove_headers; /* list of those to remove */ + void *variables; /* router-vasriables */ - #ifdef EXPERIMENTAL_SRS +#ifdef EXPERIMENTAL_SRS uschar *srs_sender; /* Change return path when delivering */ - #endif +#endif BOOL ignore_error:1; /* ignore delivery error */ - #ifdef SUPPORT_I18N +#ifdef SUPPORT_I18N BOOL utf8_msg:1; /* requires SMTPUTF8 processing */ BOOL utf8_downcvt:1; /* mandatory downconvert on delivery */ BOOL utf8_downcvt_maybe:1; /* optional downconvert on delivery */ - #endif +#endif } address_item_propagated; @@ -566,7 +570,8 @@ typedef struct address_item { uschar *self_hostname; /* after self=pass */ uschar *shadow_message; /* info about shadow transporting */ -#ifdef SUPPORT_TLS +#ifndef DISABLE_TLS + const uschar *tlsver; /* version used for transport */ uschar *cipher; /* Cipher used for transport */ void *ourcert; /* Certificate offered to peer, binary */ void *peercert; /* Certificate from peer, binary */ @@ -622,7 +627,7 @@ typedef struct address_item { BOOL af_tcp_fastopen:1; /* delivery usefully used TCP Fast Open */ BOOL af_tcp_fastopen_data:1; /* delivery sent SMTP commands on TCP Fast Open */ BOOL af_pipelining:1; /* delivery used (traditional) pipelining */ -#ifdef EXPERIMENTAL_PIPE_CONNECT +#ifndef DISABLE_PIPE_CONNECT BOOL af_early_pipe:1; /* delivery used connect-time pipelining */ #endif #ifndef DISABLE_PRDR @@ -635,17 +640,19 @@ typedef struct address_item { #endif #ifdef SUPPORT_I18N BOOL af_utf8_downcvt:1; /* downconvert was done for delivery */ +#endif +#ifdef EXPERIMENTAL_TLS_RESUME + BOOL af_tls_resume:1; /* TLS used a resumed session */ #endif } flags; unsigned int domain_cache[(MAX_NAMED_LIST * 2)/32]; unsigned int localpart_cache[(MAX_NAMED_LIST * 2)/32]; int mode; /* mode for local transporting to a file */ + int basic_errno; /* status after failure */ int more_errno; /* additional error information */ - /* (may need to hold a timestamp) */ - unsigned int delivery_usec; /* subsecond part of delivery time */ + struct timeval delivery_time; /* time taken to do delivery/attempt */ - short int basic_errno; /* status after failure */ unsigned short child_count; /* number of child addresses */ short int return_file; /* fileno of return data file */ short int special_action; /* ( used when when deferred or failed */ @@ -722,7 +729,11 @@ for the lookups cache */ typedef struct expiring_data { time_t expiry; /* if nonzero, data invalid after this time */ - void *ptr; /* pointer to data */ + union + { + void *ptr; /* pointer to data */ + int val; /* or integer data */ + } data; } expiring_data; /* Structure for holding the handle and the cached last lookup for searches. @@ -800,6 +811,11 @@ typedef struct { host_item * host; int host_af; uschar * interface; + +#ifdef SUPPORT_DANE + BOOL dane:1; /* connection must do dane */ + dns_answer tlsa_dnsa; /* strictly, this should use tainted mem */ +#endif } smtp_connect_args; /* A client-initiated connection. If TLS, the second element is non-NULL */ @@ -870,9 +886,10 @@ typedef struct namedlist_cacheblock { /* Structure for holding data for an entry in a named list */ typedef struct namedlist_block { - const uschar *string; /* the list string */ - namedlist_cacheblock *cache_data; /* cached domain_data or localpart_data */ - int number; /* the number of the list for caching */ + const uschar *string; /* the list string */ + namedlist_cacheblock *cache_data; /* cached domain_data or localpart_data */ + short number; /* the number of the list for caching */ + BOOL hide; /* -bP does not display value */ } namedlist_block; /* Structures for Access Control Lists */