X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/838d897c8e3613dc2cd2c52836731297887405af..cb63e7df39c6b128c36754295490316a18104fd2:/src/src/transports/smtp.c diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c index d8bc596fc..016f9783f 100644 --- a/src/src/transports/smtp.c +++ b/src/src/transports/smtp.c @@ -43,6 +43,10 @@ optionlist smtp_transport_options[] = { (void *)offsetof(smtp_transport_options_block, dkim.dkim_canon) }, { "dkim_domain", opt_stringptr, (void *)offsetof(smtp_transport_options_block, dkim.dkim_domain) }, + { "dkim_hash", opt_stringptr, + (void *)offsetof(smtp_transport_options_block, dkim.dkim_hash) }, + { "dkim_identity", opt_stringptr, + (void *)offsetof(smtp_transport_options_block, dkim.dkim_identity) }, { "dkim_private_key", opt_stringptr, (void *)offsetof(smtp_transport_options_block, dkim.dkim_private_key) }, { "dkim_selector", opt_stringptr, @@ -276,11 +280,13 @@ smtp_transport_options_block smtp_transport_option_defaults = { #ifndef DISABLE_DKIM .dkim = {.dkim_domain = NULL, + .dkim_identity = NULL, .dkim_private_key = NULL, .dkim_selector = NULL, .dkim_canon = NULL, - .dkim_sign_headers = NULL, + .dkim_sign_headers = NULL, .dkim_strict = NULL, + .dkim_hash = US"sha256", .dot_stuffed = FALSE}, #endif }; @@ -2505,7 +2511,10 @@ for (addr = sx->first_addr, address_count = 0; uschar * rcpt_addr; if (tcp_out_fastopen && !tcp_out_fastopen_logged) - setflag(addr, af_tcp_fastopen); + { + setflag(addr, af_tcp_fastopen_conn); + if (tcp_out_fastopen > 1) setflag(addr, af_tcp_fastopen); + } addr->dsn_aware = sx->peer_offered & OPTION_DSN ? dsn_support_yes : dsn_support_no; @@ -3144,7 +3153,7 @@ else else sprintf(CS sx.buffer, "%.500s\n", addr->unique); - DEBUG(D_deliver) debug_printf("S:journalling %s\n", sx.buffer); + DEBUG(D_deliver) debug_printf("S:journalling %s", sx.buffer); len = Ustrlen(CS sx.buffer); if (write(journal_fd, sx.buffer, len) != len) log_write(0, LOG_MAIN|LOG_PANIC, "failed to write journal for " @@ -3501,10 +3510,11 @@ propagate it from the initial if ((pid = fork())) { DEBUG(D_transport) debug_printf("proxy-prox final-pid %d\n", pid); - _exit(pid ? EXIT_FAILURE : EXIT_SUCCESS); + _exit(pid < 0 ? EXIT_FAILURE : EXIT_SUCCESS); } smtp_proxy_tls(sx.buffer, sizeof(sx.buffer), pfd[0], sx.ob->command_timeout); - exim_exit(0); + if (running_in_test_harness) millisleep(100); /* let logging complete */ + exim_exit(0, US"TLS proxy"); } } #endif