Move the TLS resumption support from Experimental to mainline
[users/jgh/exim.git] / src / src / transports / smtp.h
index ab0e93ff8a278b6698e6603c6fdcec4bddb2479b..037105a00b9a4020fc60c11bd39217d91442ef1f 100644 (file)
@@ -3,6 +3,7 @@
 *************************************************/
 
 /* Copyright (c) University of Cambridge 1995 - 2018 */
 *************************************************/
 
 /* Copyright (c) University of Cambridge 1995 - 2018 */
+/* Copyright (c) The Exim Maintainers 2020 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 #define DELIVER_BUFFER_SIZE 4096
 /* See the file NOTICE for conditions of use and distribution. */
 
 #define DELIVER_BUFFER_SIZE 4096
@@ -46,11 +47,11 @@ typedef struct {
   uschar *hosts_avoid_tls;
   uschar *hosts_verify_avoid_tls;
   uschar *hosts_avoid_pipelining;
   uschar *hosts_avoid_tls;
   uschar *hosts_verify_avoid_tls;
   uschar *hosts_avoid_pipelining;
-#ifdef EXPERIMENTAL_PIPE_CONNECT
+#ifndef DISABLE_PIPE_CONNECT
   uschar *hosts_pipe_connect;
 #endif
   uschar *hosts_avoid_esmtp;
   uschar *hosts_pipe_connect;
 #endif
   uschar *hosts_avoid_esmtp;
-#ifdef SUPPORT_TLS
+#ifndef DISABLE_TLS
   uschar *hosts_nopass_tls;
   uschar *hosts_noproxy_tls;
 #endif
   uschar *hosts_nopass_tls;
   uschar *hosts_noproxy_tls;
 #endif
@@ -78,12 +79,12 @@ typedef struct {
 #ifdef SUPPORT_SOCKS
   uschar *socks_proxy;
 #endif
 #ifdef SUPPORT_SOCKS
   uschar *socks_proxy;
 #endif
-#ifdef SUPPORT_TLS
+#ifndef DISABLE_TLS
   uschar *tls_certificate;
   uschar *tls_crl;
   uschar *tls_privatekey;
   uschar *tls_require_ciphers;
   uschar *tls_certificate;
   uschar *tls_crl;
   uschar *tls_privatekey;
   uschar *tls_require_ciphers;
-# ifdef EXPERIMENTAL_TLS_RESUME
+# ifndef DISABLE_TLS_RESUME
   uschar *tls_resumption_hosts;
 # endif
   uschar *tls_sni;
   uschar *tls_resumption_hosts;
 # endif
   uschar *tls_sni;
@@ -121,7 +122,7 @@ typedef struct {
   BOOL smtps:1;
   BOOL ok:1;
   BOOL setting_up:1;
   BOOL smtps:1;
   BOOL ok:1;
   BOOL setting_up:1;
-#ifdef EXPERIMENTAL_PIPE_CONNECT
+#ifndef DISABLE_PIPE_CONNECT
   BOOL early_pipe_ok:1;
   BOOL early_pipe_active:1;
 #endif
   BOOL early_pipe_ok:1;
   BOOL early_pipe_active:1;
 #endif
@@ -135,15 +136,16 @@ typedef struct {
   BOOL utf8_needed:1;
 #endif
   BOOL dsn_all_lasthop:1;
   BOOL utf8_needed:1;
 #endif
   BOOL dsn_all_lasthop:1;
-#if defined(SUPPORT_TLS) && defined(SUPPORT_DANE)
+#if !defined(DISABLE_TLS) && defined(SUPPORT_DANE)
   BOOL dane_required:1;
 #endif
   BOOL dane_required:1;
 #endif
-#ifdef EXPERIMENTAL_PIPE_CONNECT
+#ifndef DISABLE_PIPE_CONNECT
   BOOL pending_BANNER:1;
   BOOL pending_EHLO:1;
 #endif
   BOOL pending_MAIL:1;
   BOOL pending_BDAT:1;
   BOOL pending_BANNER:1;
   BOOL pending_EHLO:1;
 #endif
   BOOL pending_MAIL:1;
   BOOL pending_BDAT:1;
+  BOOL RCPT_452:1;
   BOOL good_RCPT:1;
   BOOL completed_addr:1;
   BOOL send_rset:1;
   BOOL good_RCPT:1;
   BOOL completed_addr:1;
   BOOL send_rset:1;
@@ -160,10 +162,11 @@ typedef struct {
   uschar *     smtp_greeting;
   uschar *     helo_response;
 #endif
   uschar *     smtp_greeting;
   uschar *     helo_response;
 #endif
-#ifdef EXPERIMENTAL_PIPE_CONNECT
+#ifndef DISABLE_PIPE_CONNECT
   ehlo_resp_precis     ehlo_resp;
 #endif
 
   ehlo_resp_precis     ehlo_resp;
 #endif
 
+  struct timeval       delivery_start;
   address_item *       first_addr;
   address_item *       next_addr;
   address_item *       sync_addr;
   address_item *       first_addr;
   address_item *       next_addr;
   address_item *       sync_addr;
@@ -198,9 +201,6 @@ extern void smtp_transport_closedown(transport_instance *);
 
 
 
 
 
 
-extern BOOL    smtp_mail_auth_str(uschar *, unsigned,
-                address_item *, smtp_transport_options_block *);
-
 #ifdef SUPPORT_SOCKS
 extern int     socks_sock_connect(host_item *, int, int, uschar *,
                 transport_instance *, int);
 #ifdef SUPPORT_SOCKS
 extern int     socks_sock_connect(host_item *, int, int, uschar *,
                 transport_instance *, int);