summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Pennock <pdp@exim.org>2010-06-05 09:32:31 +0000
committerPhil Pennock <pdp@exim.org>2010-06-05 09:32:31 +0000
commitba0846407cf2bcd79bb969145dd839ba90616731 (patch)
treef054b544ce146b61e130a3bb50dd3108c0c9b241
parent77bb000fa965b786ddb1085dd5af6c80c7d425b0 (diff)
Log a diagnostic when an SSL write fails, to help admins debug SSL interop issues.
Fixes: #995
-rw-r--r--src/src/tls-openssl.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/src/tls-openssl.c b/src/src/tls-openssl.c
index a7dad0805..dc341d326 100644
--- a/src/src/tls-openssl.c
+++ b/src/src/tls-openssl.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/tls-openssl.c,v 1.23 2010/06/05 09:10:10 pdp Exp $ */
+/* $Cambridge: exim/src/src/tls-openssl.c,v 1.24 2010/06/05 09:32:31 pdp Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -900,6 +900,14 @@ if (ssl_xfer_buffer_lwm >= ssl_xfer_buffer_hwm)
/* Handle genuine errors */
+ else if (error == SSL_ERROR_SSL)
+ {
+ ERR_error_string(ERR_get_error(), ssl_errstring);
+ log_write(0, LOG_MAIN, "TLS error (SSL_write): %s", ssl_errstring);
+ ssl_xfer_error = 1;
+ return EOF;
+ }
+
else if (error != SSL_ERROR_NONE)
{
DEBUG(D_tls) debug_printf("Got SSL error %d\n", error);