}
}
+ if (LOGGING(pipelining) && testflag(addr, af_pipelining))
+ g = string_catn(g, US" L", 2);
+
#ifndef DISABLE_PRDR
if (testflag(addr, af_prdr_used))
g = string_catn(g, US" PRDR", 5);
break;
#endif
+ case 'L':
+ switch (*subid)
+ {
+ case 1: setflag(addr, af_pipelining); break;
+ }
+ break;
+
case 'K':
setflag(addr, af_chunking_used);
break;
rmt_dlv_checked_write(fd, 'P', '0', NULL, 0);
#endif
+ if (testflag(addr, af_pipelining))
+ rmt_dlv_checked_write(fd, 'L', '1', NULL, 0);
+
if (testflag(addr, af_chunking_used))
rmt_dlv_checked_write(fd, 'K', '0', NULL, 0);
#ifdef SUPPORT_TLS
if (!regex_STARTTLS) regex_STARTTLS =
regex_must_compile(US"\\n250[\\s\\-]STARTTLS(\\s|\\n|$)", FALSE, TRUE);
+
+# ifdef EXPERIMENTAL_REQUIRETLS
+if (!regex_REQUIRETLS) regex_REQUIRETLS =
+ regex_must_compile(US"\\n250[\\s\\-]REQUIRETLS(\\s|\\n|$)", FALSE, TRUE);
+# endif
#endif
if (!regex_CHUNKING) regex_CHUNKING =
if (cutthrough.cctx.sock >= 0 && cutthrough.callout_hold_only)
{
- int pfd[2], channel_fd = cutthrough.cctx.sock, pid;
+ int channel_fd = cutthrough.cctx.sock;
smtp_peer_options = cutthrough.peer_options;
continue_sequence = 0;
#ifdef SUPPORT_TLS
if (cutthrough.is_tls)
{
+ int pfd[2], pid;
+
smtp_peer_options |= OPTION_TLS;
sending_ip_address = cutthrough.snd_ip;
sending_port = cutthrough.snd_port;