git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TLS: rework client-side use with an explicit context rather than a global
[exim.git]
/
src
/
src
/
smtp_out.c
diff --git
a/src/src/smtp_out.c
b/src/src/smtp_out.c
index 786f8b592802d1e05df8cf932e6de1fe92a3325f..70aaef3e346061bb6e32b1acce55d362c14e83c2 100644
(file)
--- a/
src/src/smtp_out.c
+++ b/
src/src/smtp_out.c
@@
-2,7
+2,7
@@
* Exim - an Internet mail transport agent *
*************************************************/
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 201
6
*/
+/* Copyright (c) University of Cambridge 1995 - 201
8
*/
/* See the file NOTICE for conditions of use and distribution. */
/* A number of functions for driving outgoing SMTP calls. */
/* See the file NOTICE for conditions of use and distribution. */
/* A number of functions for driving outgoing SMTP calls. */
@@
-212,7
+212,7
@@
int dscp_level;
int dscp_option;
int sock;
int save_errno = 0;
int dscp_option;
int sock;
int save_errno = 0;
-const blob * fastopen = NULL;
+const blob * fastopen
_blob
= NULL;
#ifndef DISABLE_EVENT
#ifndef DISABLE_EVENT
@@
-265,12
+265,12
@@
else
{
#ifdef TCP_FASTOPEN
if (verify_check_given_host(&ob->hosts_try_fastopen, host) == OK)
{
#ifdef TCP_FASTOPEN
if (verify_check_given_host(&ob->hosts_try_fastopen, host) == OK)
- fastopen = early_data ? early_data : &tcp_fastopen_nodata;
+ fastopen
_blob
= early_data ? early_data : &tcp_fastopen_nodata;
#endif
#endif
- if (ip_connect(sock, host_af, host->address, port, timeout, fastopen) < 0)
+ if (ip_connect(sock, host_af, host->address, port, timeout, fastopen
_blob
) < 0)
save_errno = errno;
save_errno = errno;
- else if (early_data && !fastopen && early_data->data && early_data->len)
+ else if (early_data && !fastopen
_blob
&& early_data->data && early_data->len)
if (send(sock, early_data->data, early_data->len, 0) < 0)
save_errno = errno;
}
if (send(sock, early_data->data, early_data->len, 0) < 0)
save_errno = errno;
}
@@
-309,7
+309,7
@@
else
}
if (ob->keepalive) ip_keepalive(sock, host->address, TRUE);
#ifdef TCP_FASTOPEN
}
if (ob->keepalive) ip_keepalive(sock, host->address, TRUE);
#ifdef TCP_FASTOPEN
- if (fastopen) tfo_out_check(sock);
+ if (fastopen
_blob
) tfo_out_check(sock);
#endif
return sock;
}
#endif
return sock;
}
@@
-411,11
+411,11
@@
HDEBUG(D_transport|D_acl) debug_printf_indent("cmd buf flush %d bytes%s\n", n,
more ? " (more expected)" : "");
#ifdef SUPPORT_TLS
more ? " (more expected)" : "");
#ifdef SUPPORT_TLS
-if (
tls_out.active == outblock->sock
)
- rc = tls_write(
FALSE
, outblock->buffer, n, more);
+if (
outblock->cctx->tls_ctx
)
+ rc = tls_write(
outblock->cctx->tls_ctx
, outblock->buffer, n, more);
else
#endif
else
#endif
- rc = send(outblock->sock, outblock->buffer, n,
+ rc = send(outblock->
cctx->
sock, outblock->buffer, n,
#ifdef MSG_MORE
more ? MSG_MORE : 0
#else
#ifdef MSG_MORE
more ? MSG_MORE : 0
#else
@@
-546,7
+546,7
@@
read_response_line(smtp_inblock *inblock, uschar *buffer, int size, int timeout)
uschar *p = buffer;
uschar *ptr = inblock->ptr;
uschar *ptrend = inblock->ptrend;
uschar *p = buffer;
uschar *ptr = inblock->ptr;
uschar *ptrend = inblock->ptrend;
-
int sock = inblock->sock
;
+
client_conn_ctx * cctx = inblock->cctx
;
/* Loop for reading multiple packets or reading another packet after emptying
a previously-read one. */
/* Loop for reading multiple packets or reading another packet after emptying
a previously-read one. */
@@
-584,7
+584,7
@@
for (;;)
/* Need to read a new input packet. */
/* Need to read a new input packet. */
- if((rc = ip_recv(
sock
, inblock->buffer, inblock->buffersize, timeout)) <= 0)
+ if((rc = ip_recv(
cctx
, inblock->buffer, inblock->buffersize, timeout)) <= 0)
{
DEBUG(D_deliver|D_transport|D_acl)
debug_printf_indent(errno ? " SMTP(%s)<<\n" : " SMTP(closed)<<\n",
{
DEBUG(D_deliver|D_transport|D_acl)
debug_printf_indent(errno ? " SMTP(%s)<<\n" : " SMTP(closed)<<\n",