X-Git-Url: https://git.exim.org/users/jgh/exim.git/blobdiff_plain/da40b1ec6b91ccd3faa4def9e5cff05ec51ca573..37c0e209412be42f04a4599ecad6f901bff46f08:/src/src/structs.h diff --git a/src/src/structs.h b/src/src/structs.h index 3b5818df0..ae37f3461 100644 --- a/src/src/structs.h +++ b/src/src/structs.h @@ -3,6 +3,7 @@ *************************************************/ /* Copyright (c) University of Cambridge 1995 - 2018 */ +/* Copyright (c) The Exim Maintainers 2020 */ /* See the file NOTICE for conditions of use and distribution. */ @@ -433,6 +434,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; @@ -551,8 +553,11 @@ typedef struct address_item { uschar *cc_local_part; /* caseful local part */ uschar *lc_local_part; /* lowercased local part */ uschar *local_part; /* points to cc or lc version */ + uschar *local_part_verified; /* result from check_local_user */ uschar *prefix; /* stripped prefix of local part */ + uschar *prefix_v; /* variable part of above */ uschar *suffix; /* stripped suffix of local part */ + uschar *suffix_v; /* variable part of above */ const uschar *domain; /* working domain (lower cased) */ uschar *address_retry_key; /* retry key including full address */ @@ -626,7 +631,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 SUPPORT_PIPE_CONNECT +#ifndef DISABLE_PIPE_CONNECT BOOL af_early_pipe:1; /* delivery used connect-time pipelining */ #endif #ifndef DISABLE_PRDR @@ -648,11 +653,10 @@ typedef struct address_item { 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 */ @@ -725,14 +729,16 @@ typedef struct tree_node { /* Structure for holding time-limited data such as DNS returns. We use this rather than extending tree_node to avoid wasting space for most tree use (variables...) at the cost of complexity -for the lookups cache */ +for the lookups cache. +We also store any options used for the lookup. */ typedef struct expiring_data { - time_t expiry; /* if nonzero, data invalid after this time */ + time_t expiry; /* if nonzero, data invalid after this time */ + const uschar * opts; /* options, or NULL */ union { - void *ptr; /* pointer to data */ - int val; /* or integer data */ + void * ptr; /* pointer to data */ + int val; /* or integer data */ } data; } expiring_data; @@ -886,9 +892,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 */