No paniclog for ECONNRESET when getsockname() fails.
authorPhilip Hazel <ph10@hermes.cam.ac.uk>
Mon, 6 Nov 2006 11:27:54 +0000 (11:27 +0000)
committerPhilip Hazel <ph10@hermes.cam.ac.uk>
Mon, 6 Nov 2006 11:27:54 +0000 (11:27 +0000)
doc/doc-txt/ChangeLog
src/src/daemon.c
test/runtest

index 029026f..c475c08 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.423 2006/10/31 16:08:11 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.424 2006/11/06 11:27:54 ph10 Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -230,6 +230,12 @@ PH/34 The spec says: "With one important exception, whenever a domain list is
       being scanned, $domain contains the subject domain." There was at least
       one case where this was not true.
 
+PH/35 The error "getsockname() failed: connection reset by peer" was being
+      written to the panic log as well as the main log, but it isn't really
+      panic-worthy as it just means the connection died rather early on. I have
+      removed the panic log writing for the ECONNRESET error when getsockname()
+      fails.
+
 
 Exim version 4.63
 -----------------
index 1311d71..797a51c 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/daemon.c,v 1.16 2006/09/05 14:14:32 ph10 Exp $ */
+/* $Cambridge: exim/src/src/daemon.c,v 1.17 2006/11/06 11:27:54 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -186,13 +186,14 @@ if (smtp_in == NULL)
   goto ERROR_RETURN;
   }
 
-/* Get the data for the local interface address. */
+/* Get the data for the local interface address. Panic for most errors, but
+"connection reset by peer" just means the connection went away. */
 
 if (getsockname(accept_socket, (struct sockaddr *)(&interface_sockaddr),
      &ifsize) < 0)
   {
-  log_write(0, LOG_MAIN|LOG_PANIC, "getsockname() failed: %s",
-    strerror(errno));
+  log_write(0, LOG_MAIN | ((errno == ECONNRESET)? 0 : LOG_PANIC),
+    "getsockname() failed: %s", strerror(errno));
   smtp_printf("421 Local problem: getsockname() failed; please try again later\r\n");
   goto ERROR_RETURN;
   }
index f3053bd..7bb9372 100755 (executable)
@@ -1,6 +1,6 @@
 #! /usr/bin/perl -w
 
-# $Cambridge: exim/test/runtest,v 1.16 2006/10/31 16:13:48 ph10 Exp $
+# $Cambridge: exim/test/runtest,v 1.17 2006/11/06 11:27:54 ph10 Exp $
 
 ###############################################################################
 # This is the controlling script for the "new" test suite for Exim. It should #
@@ -2205,7 +2205,7 @@ if (defined $parm_support{'Content_Scanning'})
 
         if($@)
           {
-          warn $@;
+          print "  $@";
           print "  Assume ClamAV is not running\n";
           }
         else