X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fstructs.h;h=20db0e5f45e5680166a97aaff080291808370026;hb=9d727701a16bf4a93b136fe01e1bf2e5996c96ee;hp=1ac455ca5789624568e70173a379c2d3ef6a8cc7;hpb=06e272a37fca29df8be58167a30818857a78e348;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/structs.h b/src/src/structs.h index 1ac455ca5..20db0e5f4 100644 --- a/src/src/structs.h +++ b/src/src/structs.h @@ -66,8 +66,10 @@ typedef enum { CHUNKING_NOT_OFFERED = -1, CHUNKING_LAST} chunking_state_t; typedef enum { TFO_NOT_USED = 0, - TFO_ATTEMPTED, - TFO_USED } tfo_state_t; + TFO_ATTEMPTED_NODATA, + TFO_ATTEMPTED_DATA, + TFO_USED_NODATA, + TFO_USED_DATA } tfo_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 @@ -618,7 +620,11 @@ typedef struct address_item { BOOL af_bad_reply:1; /* filter could not generate autoreply */ BOOL af_tcp_fastopen_conn:1; /* delivery connection used TCP Fast Open */ 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 + BOOL af_early_pipe:1; /* delivery used connect-time pipelining */ +#endif #ifndef DISABLE_PRDR BOOL af_prdr_used:1; /* delivery used SMTP PRDR */ #endif @@ -743,11 +749,12 @@ typedef struct { const uschar *data; /* pointer to data */ } dns_record; -/* Structure for holding the result of a DNS query. */ +/* Structure for holding the result of a DNS query. A touch over +64k big, so take care to release as soon as possible. */ typedef struct { int answerlen; /* length of the answer */ - uschar answer[MAXPACKET]; /* the answer itself */ + uschar answer[NS_MAXMSG]; /* the answer itself */ } dns_answer; /* Structure for holding the intermediate data while scanning a DNS answer @@ -786,6 +793,15 @@ typedef struct sha1 { unsigned int length; } sha1; +/* Information for making an smtp connection */ +typedef struct { + transport_instance * tblock; + void * ob; /* smtp_transport_options_block * */ + host_item * host; + int host_af; + uschar * interface; +} smtp_connect_args; + /* A client-initiated connection. If TLS, the second element is non-NULL */ typedef struct { int sock; @@ -816,6 +832,8 @@ typedef struct smtp_outblock { BOOL authenticating; /* TRUE when authenticating */ uschar *ptr; /* current position in the buffer */ uschar *buffer; /* the buffer itself */ + + smtp_connect_args * conn_args; /* to make connection, if not yet made */ } smtp_outblock; /* Structure to hold information about the source of redirection information */