X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/8c5d388a6e12d1a8bd4aa565920238f8a921414a..6d5c916cc5720591335fea53242dd6b97ea56fe3:/src/src/structs.h diff --git a/src/src/structs.h b/src/src/structs.h index 5fe8551cd..2a6ca68ab 100644 --- a/src/src/structs.h +++ b/src/src/structs.h @@ -51,6 +51,11 @@ typedef struct ugid_block { BOOL initgroups; } ugid_block; +typedef enum { CHUNKING_NOT_OFFERED = -1, + CHUNKING_OFFERED, + CHUNKING_ACTIVE, + CHUNKING_LAST} chunking_state_t; + /* Structure for holding information about a host for use mainly by routers, but also used when checking lists of hosts and when transporting. Looking up host addresses is done using this structure. */ @@ -189,7 +194,7 @@ 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_EVENT +#ifndef DISABLE_EVENT uschar *event_action; /* String to expand on notable events */ #endif } transport_instance; @@ -218,6 +223,34 @@ typedef struct transport_info { } transport_info; +/* smtp transport datachunk callback */ + +struct transport_context; +typedef int (*tpt_chunk_cmd_cb)(int fd, struct transport_context * tctx, + unsigned len, BOOL last); + +/* Structure for information about a delivery-in-progress */ + +typedef struct transport_context { + transport_instance * tblock; /* transport */ + struct address_item * addr; + uschar * check_string; /* string replacement */ + uschar * escape_string; + int options; /* output processing topt_* */ + + /* items below only used with option topt_use_bdat */ + tpt_chunk_cmd_cb chunk_cb; /* per-datachunk callback */ + struct smtp_inblock * inblock; + struct smtp_outblock * outblock; + host_item * host; + struct address_item * first_addr; + struct address_item **sync_addr; + BOOL pending_MAIL; + BOOL * completed_address; + int cmd_count; +} transport_ctx; + + typedef struct { uschar *request; @@ -826,4 +859,14 @@ typedef struct acl_block { /* smtp transport calc outbound_ip */ typedef BOOL (*oicf) (uschar *message_id, void *data); +/* DKIM information for transport */ +struct ob_dkim { + uschar *dkim_domain; + uschar *dkim_private_key; + uschar *dkim_selector; + uschar *dkim_canon; + uschar *dkim_sign_headers; + uschar *dkim_strict; +} dkim; + /* End of structs.h */