local_message_max maximum number of messages down one connection
as set by the caller transport
new_message_id set to the message id of a waiting message
- more set TRUE if there are yet more messages waiting
oicf_func function to call to validate if it is ok to send
to this message_id from the current instance.
oicf_data opaque data for oicf_func
BOOL
transport_check_waiting(const uschar *transport_name, const uschar *hostname,
- int local_message_max, uschar *new_message_id, BOOL *more, oicf oicf_func, void *oicf_data)
+ int local_message_max, uschar *new_message_id, oicf oicf_func, void *oicf_data)
{
dbdata_wait *host_record;
int host_length;
int i;
struct stat statbuf;
-*more = FALSE;
-
DEBUG(D_transport)
{
debug_printf("transport_check_waiting entered\n");
if (host_length > 0)
{
host_record->count = host_length/MESSAGE_ID_LENGTH;
-
dbfn_write(dbm_file, hostname, host_record, (int)sizeof(dbdata_wait) + host_length);
- *more = TRUE;
}
dbfn_close(dbm_file);
if (sx->completed_addr && sx->ok && sx->send_quit)
{
- BOOL more;
smtp_compare_t t_compare;
t_compare.tblock = tblock;
&&
#endif
transport_check_waiting(tblock->name, host->name,
- tblock->connection_max_messages, new_message_id, &more,
+ tblock->connection_max_messages, new_message_id,
(oicf)smtp_are_same_identities, (void*)&t_compare)
) )
{
if (tls_out.active.sock >= 0)
if ( f.continue_more
|| verify_check_given_host(CUSS &ob->hosts_noproxy_tls, host) == OK)
+
+/*XXX*/
+/* || sx->conn_args.dane && Ustrcmp( , ob->tls_sni) != 0 */
+/*XXX*/
{
/* Before passing the socket on, or returning to caller with it still
open, we must shut down TLS. Not all MTAs allow for the continuation
/* Private structure for the private options and other private data. */
typedef struct {
- uschar *hosts;
- uschar *fallback_hosts;
- host_item *hostlist;
- host_item *fallback_hostlist;
- uschar *authenticated_sender;
- uschar *helo_data;
- uschar *interface;
- uschar *port;
- uschar *protocol;
- uschar *dscp;
- uschar *serialize_hosts;
- uschar *hosts_try_auth;
- uschar *hosts_require_auth;
- uschar *hosts_try_chunking;
+ uschar *hosts;
+ uschar *fallback_hosts;
+ host_item *hostlist;
+ host_item *fallback_hostlist;
+ uschar *authenticated_sender;
+ uschar *helo_data;
+ uschar *interface;
+ uschar *port;
+ uschar *protocol;
+ uschar *dscp;
+ uschar *serialize_hosts;
+ uschar *hosts_try_auth;
+ uschar *hosts_require_auth;
+ uschar *hosts_try_chunking;
#ifdef SUPPORT_DANE
- uschar *hosts_try_dane;
- uschar *hosts_require_dane;
- uschar *dane_require_tls_ciphers;
+ uschar *hosts_try_dane;
+ uschar *hosts_require_dane;
+ uschar *dane_require_tls_ciphers;
#endif
- uschar *hosts_try_fastopen;
+ uschar *hosts_try_fastopen;
#ifndef DISABLE_PRDR
- uschar *hosts_try_prdr;
+ uschar *hosts_try_prdr;
#endif
#ifndef DISABLE_OCSP
- uschar *hosts_request_ocsp;
- uschar *hosts_require_ocsp;
+ uschar *hosts_request_ocsp;
+ uschar *hosts_require_ocsp;
#endif
- uschar *hosts_require_tls;
- uschar *hosts_avoid_tls;
- uschar *hosts_verify_avoid_tls;
- uschar *hosts_avoid_pipelining;
+ uschar *hosts_require_tls;
+ uschar *hosts_avoid_tls;
+ uschar *hosts_verify_avoid_tls;
+ uschar *hosts_avoid_pipelining;
#ifndef DISABLE_PIPE_CONNECT
- uschar *hosts_pipe_connect;
+ uschar *hosts_pipe_connect;
#endif
- uschar *hosts_avoid_esmtp;
+ uschar *hosts_avoid_esmtp;
#ifndef DISABLE_TLS
- uschar *hosts_nopass_tls;
- uschar *hosts_noproxy_tls;
-#endif
- int command_timeout;
- int connect_timeout;
- int data_timeout;
- int final_timeout;
- int size_addition;
- int hosts_max_try;
- int hosts_max_try_hardlimit;
- int message_linelength_limit;
- BOOL address_retry_include_sender;
- BOOL allow_localhost;
- BOOL authenticated_sender_force;
- BOOL gethostbyname;
- BOOL dns_qualify_single;
- BOOL dns_search_parents;
+ uschar *hosts_nopass_tls;
+ uschar *hosts_noproxy_tls;
+#endif
+ int command_timeout;
+ int connect_timeout;
+ int data_timeout;
+ int final_timeout;
+ int size_addition;
+ int hosts_max_try;
+ int hosts_max_try_hardlimit;
+ int message_linelength_limit;
+ BOOL address_retry_include_sender;
+ BOOL allow_localhost;
+ BOOL authenticated_sender_force;
+ BOOL gethostbyname;
+ BOOL dns_qualify_single;
+ BOOL dns_search_parents;
dnssec_domains dnssec;
- BOOL delay_after_cutoff;
- BOOL hosts_override;
- BOOL hosts_randomize;
- BOOL keepalive;
- BOOL lmtp_ignore_quota;
- uschar *expand_retry_include_ip_address;
- BOOL retry_include_ip_address;
+ BOOL delay_after_cutoff;
+ BOOL hosts_override;
+ BOOL hosts_randomize;
+ BOOL keepalive;
+ BOOL lmtp_ignore_quota;
+ uschar *expand_retry_include_ip_address;
+ BOOL retry_include_ip_address;
#ifdef SUPPORT_SOCKS
- uschar *socks_proxy;
+ uschar *socks_proxy;
#endif
#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;
# ifndef DISABLE_TLS_RESUME
- uschar *tls_resumption_hosts;
+ uschar *tls_resumption_hosts;
# endif
- uschar *tls_sni;
- uschar *tls_verify_certificates;
- int tls_dh_min_bits;
- BOOL tls_tempfail_tryclear;
- uschar *tls_verify_hosts;
- uschar *tls_try_verify_hosts;
- uschar *tls_verify_cert_hostnames;
+ const uschar *tls_sni;
+ uschar *tls_verify_certificates;
+ int tls_dh_min_bits;
+ BOOL tls_tempfail_tryclear;
+ uschar *tls_verify_hosts;
+ uschar *tls_try_verify_hosts;
+ uschar *tls_verify_cert_hostnames;
#endif
#ifdef SUPPORT_I18N
- uschar *utf8_downconvert;
+ uschar *utf8_downconvert;
#endif
#ifndef DISABLE_DKIM
struct ob_dkim dkim;
#endif
#ifdef EXPERIMENTAL_ARC
- uschar *arc_sign;
+ uschar *arc_sign;
#endif
} smtp_transport_options_block;