Update all copyright messages to cover 1995 - 2009. Remove tab from exim_checkaccess.src
[exim.git] / src / src / log.c
index 23583ee6b9b3f8e8863bf3fefe0b10af75c9c97e..a5cd100750d6bf0d08b238e7e2b25a8155050d0b 100644 (file)
@@ -1,10 +1,10 @@
-/* $Cambridge: exim/src/src/log.c,v 1.10 2006/07/07 13:36:34 ph10 Exp $ */
+/* $Cambridge: exim/src/src/log.c,v 1.14 2009/11/16 19:50:37 nm4 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) University of Cambridge 1995 - 2006 */
+/* Copyright (c) University of Cambridge 1995 - 2009 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 /* Functions for writing log files. The code for maintaining datestamped
@@ -135,9 +135,11 @@ for (pass = 0; pass < 2; pass++)
 /* This is called when Exim is dying as a result of something going wrong in
 the logging, or after a log call with LOG_PANIC_DIE set. Optionally write a
 message to debug_file or a stderr file, if they exist. Then, if in the middle
-of accepting a message, throw it away tidily; this will attempt to send an SMTP
-response if appropriate. Otherwise, try to close down an outstanding SMTP call
-tidily.
+of accepting a message, throw it away tidily by calling receive_bomb_out();
+this will attempt to send an SMTP response if appropriate. Passing NULL as the
+first argument stops it trying to run the NOTQUIT ACL (which might try further
+logging and thus cause problems). Otherwise, try to close down an outstanding
+SMTP call tidily.
 
 Arguments:
   s1         Error message to write to debug_file and/or stderr and syslog
@@ -155,7 +157,7 @@ if (s1 != NULL)
   if (log_stderr != NULL && log_stderr != debug_file)
     fprintf(log_stderr, "%s\n", s1);
   }
-if (receive_call_bombout) receive_bomb_out(s2);  /* does not return */
+if (receive_call_bombout) receive_bomb_out(NULL, s2);  /* does not return */
 if (smtp_input) smtp_closedown(s2);
 exim_exit(EXIT_FAILURE);
 }
@@ -732,11 +734,21 @@ if (!write_rejectlog) flags &= ~LOG_REJECT;
 id except for the process log and when called by a utility. */
 
 ptr = log_buffer;
+sprintf(CS ptr, "%s ", tod_stamp(tod_log));
+while(*ptr) ptr++;
+
+if ((log_extra_selector & LX_pid) != 0)
+  {
+  sprintf(CS ptr, "[%d] ", (int)getpid());
+  while (*ptr) ptr++;
+  }
+
 if (really_exim && (flags & LOG_PROCESS) == 0 && message_id[0] != 0)
-  sprintf(CS ptr, "%s %s ", tod_stamp(tod_log), message_id);
-else sprintf(CS ptr, "%s ", tod_stamp(tod_log));
+  {
+  sprintf(CS ptr, "%s ", message_id);
+  while(*ptr) ptr++;
+  }
 
-while(*ptr) ptr++;
 if ((flags & LOG_CONFIG) != 0) ptr = log_config_info(ptr, flags);
 
 va_start(ap, format);