-const char errlog_rcs[] = "$Id: errlog.c,v 1.115 2012/07/27 17:27:47 fabiankeil Exp $";
+const char errlog_rcs[] = "$Id: errlog.c,v 1.121 2014/06/03 10:24:00 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/errlog.c,v $
* Purpose : Log errors to a designated destination in an elegant,
* printf-like fashion.
*
- * Copyright : Written by and Copyright (C) 2001-2010 the
+ * Copyright : Written by and Copyright (C) 2001-2014 the
* Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
#include "errlog.h"
#include "project.h"
#include "jcc.h"
+#ifdef FEATURE_EXTERNAL_FILTERS
+#include "jbsockets.h"
+#endif
const char errlog_h_rcs[] = ERRLOG_H_VERSION;
*********************************************************************/
static void fatal_error(const char *error_message)
{
-#if defined(_WIN32) && !defined(_WIN_CONSOLE)
- /* Skip timestamp and thread id for the message box. */
- const char *box_message = strstr(error_message, "Fatal error");
- if (NULL == box_message)
+ if (logfp != NULL)
{
- /* Shouldn't happen but ... */
- box_message = error_message;
+ fputs(error_message, logfp);
}
- MessageBox(g_hwndLogFrame, box_message, "Privoxy Error",
- MB_OK | MB_ICONERROR | MB_TASKMODAL | MB_SETFOREGROUND | MB_TOPMOST);
- /* Cleanup - remove taskbar icon etc. */
- TermLogWindow();
-#endif /* defined(_WIN32) && !defined(_WIN_CONSOLE) */
-
- if (logfp != NULL)
+#if defined(_WIN32) && !defined(_WIN_CONSOLE)
{
- fputs(error_message, logfp);
+ /* Skip timestamp and thread id for the message box. */
+ const char *box_message = strstr(error_message, "Fatal error");
+ if (NULL == box_message)
+ {
+ /* Shouldn't happen but ... */
+ box_message = error_message;
+ }
+ MessageBox(g_hwndLogFrame, box_message, "Privoxy Error",
+ MB_OK | MB_ICONERROR | MB_TASKMODAL | MB_SETFOREGROUND | MB_TOPMOST);
+
+ /* Cleanup - remove taskbar icon etc. */
+ TermLogWindow();
}
+#endif /* defined(_WIN32) && !defined(_WIN_CONSOLE) */
#if defined(unix)
if (pidfile)
log_error(LOG_LEVEL_FATAL, "init_error_log(): can't open logfile: \'%s\'", logfname);
}
+#ifdef FEATURE_EXTERNAL_FILTERS
+ mark_socket_for_close_on_execute(3);
+#endif
+
/* set logging to be completely unbuffered */
setbuf(fp, NULL);
*********************************************************************/
static long get_thread_id(void)
{
- long this_thread = 1; /* was: pthread_t this_thread;*/
+ long this_thread;
#ifdef __OS2__
PTIB ptib;
ulrc = DosGetInfoBlocks(&ptib, NULL);
if (ulrc == 0)
this_thread = ptib -> tib_ptib2 -> tib2_ultid;
+#else
+ /* Forking instead of threading. */
+ this_thread = 1;
#endif /* def FEATURE_PTHREAD */
return this_thread;
}
+#define LOG_BUFFER_SIZE BUFFER_SIZE
/*********************************************************************
*
* Function : log_error
va_list ap;
char *outbuf = NULL;
static char *outbuf_save = NULL;
- char tempbuf[BUFFER_SIZE];
+ char tempbuf[LOG_BUFFER_SIZE];
size_t length = 0;
const char * src = fmt;
long thread_id;
* why else do we allocate instead of using
* an array?
*/
- size_t log_buffer_size = BUFFER_SIZE;
+ size_t log_buffer_size = LOG_BUFFER_SIZE;
#if defined(_WIN32) && !defined(_WIN_CONSOLE)
/*
return "File has been modified outside of the CGI actions editor.";
case JB_ERR_COMPRESS:
return "(De)compression failure";
- default:
- assert(0);
- return "Unknown error";
}
assert(0);
return "Internal error";