Markup changes, and minor text wording to signify we are between releases.
[privoxy.git] / errlog.c
index 924999e..6afe088 100644 (file)
--- a/errlog.c
+++ b/errlog.c
@@ -1,4 +1,4 @@
-const char errlog_rcs[] = "$Id: errlog.c,v 1.59 2007/11/01 12:50:56 fabiankeil Exp $";
+const char errlog_rcs[] = "$Id: errlog.c,v 1.61 2007/11/04 19:03:01 fabiankeil Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/errlog.c,v $
@@ -33,6 +33,15 @@ const char errlog_rcs[] = "$Id: errlog.c,v 1.59 2007/11/01 12:50:56 fabiankeil E
  *
  * Revisions   :
  *    $Log: errlog.c,v $
+ *    Revision 1.61  2007/11/04 19:03:01  fabiankeil
+ *    Fix another deadlock Hal spotted and that mysteriously didn't affect FreeBSD.
+ *
+ *    Revision 1.60  2007/11/03 19:03:31  fabiankeil
+ *    - Prevent the Windows GUI from showing the version two times in a row.
+ *    - Stop using the imperative in the "(Re-)Open logfile" message.
+ *    - Ditch the "Switching to daemon mode" message as the detection
+ *      whether or not we're already in daemon mode doesn't actually work.
+ *
  *    Revision 1.59  2007/11/01 12:50:56  fabiankeil
  *    Here's looking at you, deadlock.
  *
@@ -425,11 +434,13 @@ static void fatal_error(const char * error_message)
 
    /* Cleanup - remove taskbar icon etc. */
    TermLogWindow();
-
-#else /* if !defined(_WIN32) || defined(_WIN_CONSOLE) */
-   fputs(error_message, logfp);
 #endif /* defined(_WIN32) && !defined(_WIN_CONSOLE) */
 
+   if (logfp != NULL)
+   {
+      fputs(error_message, logfp);
+   }
+
 #if defined(unix)
    if (pidfile)
    {
@@ -522,14 +533,14 @@ void set_debug_level(int debug_level)
  *********************************************************************/
 void disable_logging(void)
 {
-   lock_logfile();
    if (logfp != NULL)
    {
       log_error(LOG_LEVEL_INFO, "No logfile configured. Logging disabled.");
+      lock_logfile();
       fclose(logfp);
       logfp = NULL;
+      unlock_logfile();
    }
-   unlock_logfile();
 }
 
 
@@ -894,7 +905,8 @@ void log_error(int loglevel, const char *fmt, ...)
     * settings and that logging is enabled.
     * Bail out otherwise.
     */
-   if ((0 == (loglevel & debug)) || (logfp == NULL))
+   if ((loglevel != LOG_LEVEL_FATAL) &&
+       ((0 == (loglevel & debug)) || (logfp == NULL)))
    {
       return;
    }
@@ -913,9 +925,6 @@ void log_error(int loglevel, const char *fmt, ...)
          snprintf(tempbuf, sizeof(tempbuf),
             "%s Privoxy(%08lx) Fatal error: log_error() failed to allocate buffer memory.\n"
             "\nExiting.", timestamp, thread_id);
-         assert(NULL != logfp);
-         fputs(tempbuf, logfp);
-         unlock_logfile();
          fatal_error(tempbuf); /* Exit */
       }
    }
@@ -1133,7 +1142,7 @@ void log_error(int loglevel, const char *fmt, ...)
       loglevel = LOG_LEVEL_FATAL;
    }
 
-   assert(NULL != logfp);
+   assert(NULL != logfp || loglevel == LOG_LEVEL_FATAL);
 
    if (loglevel == LOG_LEVEL_FATAL)
    {