X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/02b41d7106c67bbe862d6a44373034684a03c00e..c0635b6dfe65ee24c2fb8d165beabc608d2fd1a5:/src/src/transports/smtp.h diff --git a/src/src/transports/smtp.h b/src/src/transports/smtp.h index e12c0ab94..14c0c7556 100644 --- a/src/src/transports/smtp.h +++ b/src/src/transports/smtp.h @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2015 */ +/* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ #define DELIVER_BUFFER_SIZE 4096 @@ -29,7 +29,7 @@ typedef struct { uschar *hosts_try_auth; uschar *hosts_require_auth; uschar *hosts_try_chunking; -#ifdef EXPERIMENTAL_DANE +#ifdef SUPPORT_DANE uschar *hosts_try_dane; uschar *hosts_require_dane; #endif @@ -46,7 +46,10 @@ typedef struct { uschar *hosts_verify_avoid_tls; uschar *hosts_avoid_pipelining; uschar *hosts_avoid_esmtp; +#ifdef SUPPORT_TLS uschar *hosts_nopass_tls; + uschar *hosts_noproxy_tls; +#endif int command_timeout; int connect_timeout; int data_timeout; @@ -91,21 +94,20 @@ typedef struct { /* smtp connect context */ typedef struct { + uschar * from_addr; address_item * addrlist; host_item * host; int host_af; int port; uschar * interface; + BOOL verify:1; BOOL lmtp:1; BOOL smtps:1; BOOL ok:1; - BOOL send_rset:1; - BOOL send_quit:1; BOOL setting_up:1; BOOL esmtp:1; BOOL esmtp_sent:1; - BOOL pending_MAIL:1; #ifndef DISABLE_PRDR BOOL prdr_active:1; #endif @@ -113,14 +115,22 @@ typedef struct { BOOL utf8_needed:1; #endif BOOL dsn_all_lasthop:1; -#if defined(SUPPORT_TLS) && defined(EXPERIMENTAL_DANE) +#if defined(SUPPORT_TLS) && defined(SUPPORT_DANE) BOOL dane:1; BOOL dane_required:1; #endif + BOOL pending_MAIL:1; + BOOL pending_BDAT:1; + BOOL good_RCPT:1; + BOOL completed_addr:1; + BOOL send_rset:1; + BOOL send_quit:1; int max_rcpt; + int cmd_count; uschar peer_offered; + uschar avoid_option; uschar * igquotstr; uschar * helo_data; #ifdef EXPERIMENTAL_DSN_INFO @@ -128,6 +138,10 @@ typedef struct { uschar * helo_response; #endif + address_item * first_addr; + address_item * next_addr; + address_item * sync_addr; + smtp_inblock inblock; smtp_outblock outblock; uschar buffer[DELIVER_BUFFER_SIZE]; @@ -138,7 +152,8 @@ typedef struct { smtp_transport_options_block * ob; } smtp_context; -extern int smtp_setup_conn(smtp_context *, BOOL, BOOL); +extern int smtp_setup_conn(smtp_context *, BOOL); +extern int smtp_write_mail_and_rcpt_cmds(smtp_context *, int *); /* Data for reading the private options. */