-const char errlog_rcs[] = "$Id: errlog.c,v 1.24 2001/12/30 14:07:32 steudten Exp $";
+const char errlog_rcs[] = "$Id: errlog.c,v 1.29 2002/03/04 23:45:13 jongfoster Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/errlog.c,v $
*
* Revisions :
* $Log: errlog.c,v $
+ * Revision 1.29 2002/03/04 23:45:13 jongfoster
+ * Printing thread ID if using Win32 native threads
+ *
+ * Revision 1.28 2002/03/04 17:59:59 oes
+ * Deleted deletePidFile(), cosmetics
+ *
+ * Revision 1.27 2002/03/04 02:08:01 david__schmidt
+ * Enable web editing of actions file on OS/2 (it had been broken all this time!)
+ *
+ * Revision 1.26 2002/01/09 19:05:45 steudten
+ * Fix big memory leak.
+ *
+ * Revision 1.25 2002/01/09 14:32:08 oes
+ * Added support for gmtime_r and localtime_r.
+ *
* Revision 1.24 2001/12/30 14:07:32 steudten
* - Add signal handling (unix)
* - Add SIGHUP handler (unix)
#include "errlog.h"
#include "project.h"
+#include "jcc.h"
const char errlog_h_rcs[] = ERRLOG_H_VERSION;
#endif /* defined(_WIN32) && !defined(_WIN_CONSOLE) */
#if defined(unix)
- deletePidFile();
+ unlink(pidfile);
#endif /* unix */
exit(1);
/*********************************************************************
*
- * Function : init_errlog
+ * Function : init_error_log
*
* Description : Initializes the logging module. Must call before
* calling log_error.
{
if( !(fp = fopen(logfname, "a")) )
{
- log_error(LOG_LEVEL_FATAL, "init_errlog(): can't open logfile: %s", logfname);
+ log_error(LOG_LEVEL_FATAL, "init_error_log(): can't open logfile: %s", logfname);
}
/* set logging to be completely unbuffered */
{
va_list ap;
char *outbuf= NULL;
- char *outbuf_save = NULL;
+ static char *outbuf_save = NULL;
char * src = fmt;
int outc = 0;
long this_thread = 1; /* was: pthread_t this_thread;*/
/* FIXME get current thread id */
#ifdef FEATURE_PTHREAD
this_thread = (long)pthread_self();
-#elif __OS2__
-
+#elif defined(_WIN32)
+ this_thread = GetCurrentThreadId();
+#elif defined(__OS2__)
ulrc = DosGetInfoBlocks(&ptib, NULL);
if (ulrc == 0)
this_thread = ptib -> tib_ptib2 -> tib2_ultid;
#endif /* def FEATURE_PTHREAD */
- outbuf_save = outbuf = (char*)malloc(BUFFER_SIZE);
- assert(outbuf);
+ if ( !outbuf_save )
+ {
+ outbuf_save = outbuf = (char*)malloc(BUFFER_SIZE);
+ assert(outbuf);
+ }
+ outbuf = outbuf_save;
{
/*
while ((*src) && (outc < BUFFER_SIZE-2))
{
char tempbuf[BUFFER_SIZE];
- char *sval;
+ char *sval = NULL;
int ival;
unsigned uval;
long lval;
#ifdef _WIN32
ival = WSAGetLastError();
sval = w32_socket_strerr(ival, tempbuf);
+#elif __OS2__
+ ival = sock_errno();
+ if (ival == 0)
+ ival = errno;
+ sval = strerror(ival);
#else /* ifndef _WIN32 */
ival = errno;
#ifdef HAVE_STRERROR