diff options
author | Jeremy Harris <jgh146exb@wizmail.org> | 2018-12-29 18:41:48 +0000 |
---|---|---|
committer | Jeremy Harris <jgh146exb@wizmail.org> | 2018-12-29 20:58:57 +0000 |
commit | f6a1bb920eebdba0d4a6c295c4d054307b49b2b1 (patch) | |
tree | 2c0a4b20af08b5506d40076888511ce4a4395dd0 /src | |
parent | 2cf48743cc4bf8b99b4db880fa06a4768222d257 (diff) |
OpenSSSL: support write-with-more-intent in client
Diffstat (limited to 'src')
-rw-r--r-- | src/src/tls-openssl.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/src/tls-openssl.c b/src/src/tls-openssl.c index 4566baa36..8f888824f 100644 --- a/src/src/tls-openssl.c +++ b/src/src/tls-openssl.c @@ -2898,6 +2898,7 @@ Used by both server-side and client-side TLS. int tls_write(void * ct_ctx, const uschar *buff, size_t len, BOOL more) { +size_t olen = len; int outbytes, error; SSL * ssl = ct_ctx ? ((exim_openssl_client_tls_ctx *)ct_ctx)->ssl : server_ssl; static gstring * corked = NULL; @@ -2909,10 +2910,11 @@ DEBUG(D_tls) debug_printf("%s(%p, %lu%s)\n", __FUNCTION__, "more" is notified. This hack is only ok if small amounts are involved AND only one stream does it, in one context (i.e. no store reset). Currently it is used for the responses to the received SMTP MAIL , RCPT, DATA sequence, only. */ -/*XXX + if PIPE_COMMAND, banner & ehlo-resp for smmtp-on-connect. Suspect there's -a store reset there. */ +/* + if PIPE_COMMAND, banner & ehlo-resp for smmtp-on-connect. Suspect there's +a store reset there, so use POOL_PERM. */ +/* + if CHUNKING, cmds EHLO,MAIL,RCPT(s),BDAT */ -if (!ct_ctx && (more || corked)) +if ((more || corked)) { #ifdef EXPERIMENTAL_PIPE_CONNECT int save_pool = store_pool; @@ -2965,7 +2967,7 @@ for (int left = len; left > 0;) return -1; } } -return len; +return olen; } |