Fix mua_wrapper defers not turning into fails for problems such as
[exim.git] / src / src / log.c
index d2ef9e51865ad6af1c2dded8ca965ed90732aa6e..1427bd06122389c530a1c9bc17affb6ad5c64f6b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/log.c,v 1.3 2005/03/29 15:19:25 ph10 Exp $ */
+/* $Cambridge: exim/src/src/log.c,v 1.6 2005/06/28 10:23:35 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -314,7 +314,7 @@ open, arrange for automatic closure on exec(), and then return. */
 
 if (*fd >= 0)
   {
-  fcntl(*fd, F_SETFD, fcntl(*fd, F_GETFD) | FD_CLOEXEC);
+  (void)fcntl(*fd, F_SETFD, fcntl(*fd, F_GETFD) | FD_CLOEXEC);
   return;
   }
 
@@ -367,7 +367,7 @@ else if (euid == root_uid)
 
 if (*fd >= 0)
   {
-  fcntl(*fd, F_SETFD, fcntl(*fd, F_GETFD) | FD_CLOEXEC);
+  (void)fcntl(*fd, F_SETFD, fcntl(*fd, F_GETFD) | FD_CLOEXEC);
   return;
   }
 
@@ -814,7 +814,7 @@ if ((flags & LOG_MAIN) != 0 &&
       uschar *nowstamp = tod_stamp(tod_log_datestamp);
       if (Ustrncmp (mainlog_datestamp, nowstamp, Ustrlen(nowstamp)) != 0)
         {
-        close(mainlogfd);             /* Close the file */
+        (void)close(mainlogfd);       /* Close the file */
         mainlogfd = -1;               /* Clear the file descriptor */
         mainlog_inode = 0;            /* Unset the inode */
         mainlog_datestamp = NULL;     /* Clear the datestamp */
@@ -830,7 +830,7 @@ if ((flags & LOG_MAIN) != 0 &&
       {
       if (Ustat(mainlog_name, &statbuf) < 0 || statbuf.st_ino != mainlog_inode)
         {
-        close(mainlogfd);
+        (void)close(mainlogfd);
         mainlogfd = -1;
         mainlog_inode = 0;
         }
@@ -936,7 +936,7 @@ if (write_rejectlog && (flags & LOG_REJECT) != 0)
       uschar *nowstamp = tod_stamp(tod_log_datestamp);
       if (Ustrncmp (rejectlog_datestamp, nowstamp, Ustrlen(nowstamp)) != 0)
         {
-        close(rejectlogfd);             /* Close the file */
+        (void)close(rejectlogfd);       /* Close the file */
         rejectlogfd = -1;               /* Clear the file descriptor */
         rejectlog_inode = 0;            /* Unset the inode */
         rejectlog_datestamp = NULL;     /* Clear the datestamp */
@@ -953,7 +953,7 @@ if (write_rejectlog && (flags & LOG_REJECT) != 0)
       if (Ustat(rejectlog_name, &statbuf) < 0 ||
            statbuf.st_ino != rejectlog_inode)
         {
-        close(rejectlogfd);
+        (void)close(rejectlogfd);
         rejectlogfd = -1;
         rejectlog_inode = 0;
         }
@@ -997,11 +997,11 @@ if ((flags & LOG_PROCESS) != 0)
 /* Handle the panic log, which is not kept open like the others. If it fails to
 open, there will be a recursive call to log_write(). We detect this above and
 attempt to write to the system log as a last-ditch try at telling somebody. In
-all cases, try to write to log_stderr. */
+all cases except mua_wrapper, try to write to log_stderr. */
 
 if ((flags & LOG_PANIC) != 0)
   {
-  if (log_stderr != NULL && log_stderr != debug_file)
+  if (log_stderr != NULL && log_stderr != debug_file && !mua_wrapper)
     fprintf(log_stderr, "%s", CS log_buffer);
 
   if ((logging_mode & LOG_MODE_SYSLOG) != 0)
@@ -1031,7 +1031,7 @@ if ((flags & LOG_PANIC) != 0)
       flags |= LOG_PANIC_DIE;
       }
 
-    close(paniclogfd);
+    (void)close(paniclogfd);
     }
 
   /* Give up if the DIE flag is set */
@@ -1051,9 +1051,9 @@ void
 log_close_all(void)
 {
 if (mainlogfd >= 0)
-  { close(mainlogfd); mainlogfd = -1; }
+  { (void)close(mainlogfd); mainlogfd = -1; }
 if (rejectlogfd >= 0)
-  { close(rejectlogfd); rejectlogfd = -1; }
+  { (void)close(rejectlogfd); rejectlogfd = -1; }
 closelog();
 syslog_open = FALSE;
 }