if (!(expint = expand_string(istring)))
{
- if (expand_string_forcedfail) return TRUE;
+ if (f.expand_string_forcedfail) return TRUE;
addr->transport_return = PANIC;
addr->message = string_sprintf("failed to expand \"interface\" "
"option for %s: %s", msg, expand_string_message);
socklen_t len = sizeof(tinfo);
if (getsockopt(sock, IPPROTO_TCP, TCP_INFO, &tinfo, &len) == 0)
- {
switch (tcp_out_fastopen)
{
/* This is a somewhat dubious detection method; totally undocumented so likely
'# echo -n "00000000-00000000-00000000-0000000" >/proc/sys/net/ipv4/tcp_fastopen_key'
The kernel seems to be counting unack'd packets. */
- case 1:
+ case TFO_ATTEMPTED:
if (tinfo.tcpi_unacked > 1)
{
DEBUG(D_transport|D_v)
debug_printf("TCP_FASTOPEN tcpi_unacked %d\n", tinfo.tcpi_unacked);
- tcp_out_fastopen = 2;
+ tcp_out_fastopen = TFO_USED;
}
break;
-#ifdef notdef /* This seems to always fire, meaning that we cannot tell
+# ifdef notdef /* This seems to always fire, meaning that we cannot tell
whether the server accepted data we sent. For now assume
that it did. */
/* If there was data-on-SYN but we had to retrasnmit it, declare no TFO */
- case 2:
+ case TFO_USED:
if (!(tinfo.tcpi_options & TCPI_OPT_SYN_DATA))
{
DEBUG(D_transport|D_v) debug_printf("TFO: had to retransmit\n");
- tcp_out_fastopen = 0;
+ tcp_out_fastopen = TFO_NOT_USED;
}
break;
-#endif
- }
- }
+ default: break; /* compiler quietening */
+# endif
+ }
# endif
}
#endif
else
{
#ifdef TCP_FASTOPEN
- if (verify_check_given_host(&ob->hosts_try_fastopen, host) == OK)
+ if (verify_check_given_host(CUSS &ob->hosts_try_fastopen, host) == OK)
fastopen_blob = early_data ? early_data : &tcp_fastopen_nodata;
#endif
any error message.
Arguments:
- outblock contains buffer for pipelining, and socket
+ sx SMTP connection, contains buffer for pipelining, and socket
mode buffer, write-with-more-likely, write
format a format, starting with one of
of HELO, MAIL FROM, RCPT TO, DATA, ".", or QUIT.
*/
int
-smtp_write_command(smtp_outblock * outblock, int mode, const char *format, ...)
+smtp_write_command(void * sx, int mode, const char *format, ...)
{
+smtp_outblock * outblock = &((smtp_context *)sx)->outblock;
int count;
int rc = 0;
va_list ap;
the error code will be in errno.
Arguments:
- inblock the SMTP input block (contains holding buffer, socket, etc.)
+ sx the SMTP connection (contains input block with holding buffer,
+ socket, etc.)
buffer where to put the response
size the size of the buffer
okdigit the expected first digit of the response
*/
BOOL
-smtp_read_response(smtp_inblock *inblock, uschar *buffer, int size, int okdigit,
+smtp_read_response(void * sx, uschar *buffer, int size, int okdigit,
int timeout)
{
+smtp_inblock * inblock = &((smtp_context *)sx)->inblock;
uschar *ptr = buffer;
int count;