X-Git-Url: https://git.exim.org/users/heiko/exim.git/blobdiff_plain/0851a3bbf4667081d47f5d85b6b3a5cb33cbdba6..f6fa370ab8cc56cf06e906a1a2c714d196aac81b:/src/src/tls-gnu.c diff --git a/src/src/tls-gnu.c b/src/src/tls-gnu.c index fa489902a..eff9e8859 100644 --- a/src/src/tls-gnu.c +++ b/src/src/tls-gnu.c @@ -424,11 +424,14 @@ record_io_error(exim_gnutls_state_st *state, int rc, uschar *when, uschar *text) const uschar * msg; uschar * errstr; -if (rc == GNUTLS_E_FATAL_ALERT_RECEIVED) - msg = string_sprintf("A TLS fatal alert has been received: %s", - US gnutls_alert_get_name(gnutls_alert_get(state->session))); -else - msg = US gnutls_strerror(rc); +msg = rc == GNUTLS_E_FATAL_ALERT_RECEIVED + ? string_sprintf("A TLS fatal alert has been received: %s", + US gnutls_alert_get_name(gnutls_alert_get(state->session))) + : rc == GNUTLS_E_PREMATURE_TERMINATION && errno + ? errno == ECONNRESET /* Outlook does this to us right after sending us QUIT */ + ? string_sprintf("syscall: %s", strerror(errno)) + : string_sprintf("%s: syscall: %s", US gnutls_strerror(rc), strerror(errno)) + : US gnutls_strerror(rc); (void) tls_error(when, msg, state->host, &errstr);