summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilip Hazel <ph10@hermes.cam.ac.uk>2005-12-22 14:54:50 +0000
committerPhilip Hazel <ph10@hermes.cam.ac.uk>2005-12-22 14:54:50 +0000
commit19b9dc856cc9406bc685eed974a127f327a42815 (patch)
treeeec3bb5cf0b923ce24e75bed5dd8f94453e85bbd /src
parent7a10041529b179cd45a71ebe579af5e2eeddb51d (diff)
Treat ECONNRESET the same as an end-of-file indication.
Diffstat (limited to 'src')
-rw-r--r--src/src/transports/smtp.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c
index 7447be179..8deaeeadd 100644
--- a/src/src/transports/smtp.c
+++ b/src/src/transports/smtp.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/transports/smtp.c,v 1.18 2005/12/06 10:25:59 ph10 Exp $ */
+/* $Cambridge: exim/src/src/transports/smtp.c,v 1.19 2005/12/22 14:54:50 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -462,11 +462,12 @@ if (buffer[0] != 0)
}
/* No data was read. If there is no errno, this must be the EOF (i.e.
-connection closed) case, which causes deferral. Otherwise, put the host's
-identity in the message, leaving the errno value to be interpreted as well. In
-all cases, we have to assume the connection is now dead. */
+connection closed) case, which causes deferral. An explicit connection reset
+error has the same effect. Otherwise, put the host's identity in the message,
+leaving the errno value to be interpreted as well. In all cases, we have to
+assume the connection is now dead. */
-if (*errno_value == 0)
+if (*errno_value == 0 || *errno_value == ECONNRESET)
{
*errno_value = ERRNO_SMTPCLOSED;
*message = US string_sprintf("Remote host %s [%s] closed connection "