X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fstructs.h;h=3cdf12a8fe21b0e00fecdaeb91d18928159db619;hb=a466d09b249d5018ecb0f1ec45adba545c02c75b;hp=eb430851df9669f8078d58b64e323618d0dd4600;hpb=44649fdb169979af3c5a08b10889d1ecee48a469;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/structs.h b/src/src/structs.h index eb430851d..3cdf12a8f 100644 --- a/src/src/structs.h +++ b/src/src/structs.h @@ -55,6 +55,8 @@ typedef struct ugid_block { but also used when checking lists of hosts and when transporting. Looking up host addresses is done using this structure. */ +typedef enum {DS_UNK=-1, DS_NO, DS_YES} dnssec_status_t; + typedef struct host_item { struct host_item *next; uschar *name; /* Host name */ @@ -65,6 +67,7 @@ typedef struct host_item { int status; /* Usable, unusable, or unknown */ int why; /* Why host is unusable */ int last_try; /* Time of last try if known */ + dnssec_status_t dnssec; } host_item; /* Chain of rewrite rules, read from the rewrite config, or parsed from the @@ -145,6 +148,7 @@ typedef struct transport_instance { uschar *home_dir; /* ) Used only for local transports */ uschar *current_dir; /* ) */ /**************************************/ + uschar *expand_multi_domain; /* ) */ BOOL multi_domain; /* ) */ BOOL overrides_hosts; /* ) Used only for remote transports */ int max_addresses; /* ) */ @@ -184,8 +188,8 @@ typedef struct transport_instance { BOOL log_fail_output; BOOL log_defer_output; BOOL retry_use_local_part; /* Defaults true for local, false for remote */ -#ifdef EXPERIMENTAL_TPDA - uschar *tpda_delivery_action; /* String to expand on success */ +#ifdef EXPERIMENTAL_EVENT + uschar *event_action; /* String to expand on notable events */ #endif } transport_instance; @@ -282,6 +286,7 @@ typedef struct router_instance { BOOL verify_sender; /* Use this router when verifying a sender */ BOOL uid_set; /* Flag to indicate uid is set */ BOOL unseen; /* If TRUE carry on, even after success */ + BOOL dsn_lasthop; /* If TRUE, this router is a DSN endpoint */ int self_code; /* Encoded version of "self" */ uid_t uid; /* Fixed uid value */ @@ -485,10 +490,13 @@ typedef struct address_item_propagated { #define af_cert_verified 0x01000000 /* delivered with verified TLS cert */ #define af_pass_message 0x02000000 /* pass message in bounces */ #define af_bad_reply 0x04000000 /* filter could not generate autoreply */ -#ifdef EXPERIMENTAL_PRDR +#ifndef DISABLE_PRDR # define af_prdr_used 0x08000000 /* delivery used SMTP PRDR */ #endif #define af_force_command 0x10000000 /* force_command in pipe transport */ +#ifdef EXPERIMENTAL_DANE +# define af_dane_verified 0x20000000 /* TLS cert verify done with DANE */ +#endif /* These flags must be propagated when a child is created */ @@ -540,13 +548,20 @@ typedef struct address_item { #ifdef SUPPORT_TLS uschar *cipher; /* Cipher used for transport */ + void *ourcert; /* Certificate offered to peer, binary */ + void *peercert; /* Certificate from peer, binary */ uschar *peerdn; /* DN of server's certificate */ + int ocsp; /* OCSP status of peer cert */ #endif uschar *authenticator; /* auth driver name used by transport */ uschar *auth_id; /* auth "login" name used by transport */ uschar *auth_sndr; /* AUTH arg to SMTP MAIL, used by transport */ + uschar *dsn_orcpt; /* DSN orcpt value */ + int dsn_flags; /* DSN flags */ + int dsn_aware; /* DSN aware flag */ + uid_t uid; /* uid for transporting */ gid_t gid; /* gid for transporting */