X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/a5853d7c97b23bf0e4c4438a3ac3f67f28292d6c..a2673768b71ee86c71e16e46d53d0ffc4f66b0de:/src/src/deliver.c diff --git a/src/src/deliver.c b/src/src/deliver.c index 2d2850cf5..b8a55b20a 100644 --- a/src/src/deliver.c +++ b/src/src/deliver.c @@ -752,7 +752,12 @@ if (LOGGING(proxy) && proxy_local_address) } #endif -return d_log_interface(s, sp, pp); +s = d_log_interface(s, sp, pp); + +if (testflag(addr, af_tcp_fastopen)) + s = string_catn(s, sp, pp, US" TFO", 4); + +return s; } @@ -3560,6 +3565,10 @@ while (!done) setflag(addr, af_chunking_used); break; + case 'T': + setflag(addr, af_tcp_fastopen); + break; + case 'D': if (!addr) goto ADDR_MISMATCH; memcpy(&(addr->dsn_aware), ptr, sizeof(addr->dsn_aware)); @@ -3979,7 +3988,6 @@ for (;;) /* Normally we do not repeat this loop */ { readycount--; if (par_read_pipe(poffset, FALSE)) /* Finished with this pipe */ - { for (;;) /* Loop for signals */ { pid_t endedpid = waitpid(pid, &status, 0); @@ -3989,7 +3997,6 @@ for (;;) /* Normally we do not repeat this loop */ "%d (errno = %d) from waitpid() for process %d", (int)endedpid, errno, (int)pid); } - } } } @@ -4856,6 +4863,9 @@ for (delivery_count = 0; addr_remote; delivery_count++) if (testflag(addr, af_chunking_used)) rmt_dlv_checked_write(fd, 'K', '0', NULL, 0); + if (testflag(addr, af_tcp_fastopen)) + rmt_dlv_checked_write(fd, 'T', '0', NULL, 0); + memcpy(big_buffer, &addr->dsn_aware, sizeof(addr->dsn_aware)); rmt_dlv_checked_write(fd, 'D', '0', big_buffer, sizeof(addr->dsn_aware));