sig_handler(): Split a long line in two
[privoxy.git] / errlog.c
index 8b12a43..969c0bd 100644 (file)
--- a/errlog.c
+++ b/errlog.c
@@ -45,9 +45,9 @@
 /* For gettimeofday() */
 #include <sys/time.h>
 
-#if !defined(_WIN32) && !defined(__OS2__)
+#if !defined(_WIN32)
 #include <unistd.h>
-#endif /* !defined(_WIN32) && !defined(__OS2__) */
+#endif /* !defined(_WIN32) */
 
 #include <errno.h>
 #include <assert.h>
 #define inline __inline
 #endif /* def _MSC_VER */
 
-#ifdef __OS2__
-#include <sys/socket.h> /* For sock_errno */
-#define INCL_DOS
-#include <os2.h>
-#endif
-
 #include "errlog.h"
 #include "project.h"
 #include "jcc.h"
@@ -96,24 +90,21 @@ static void fatal_error(const char * error_message);
 #ifdef _WIN32
 static char *w32_socket_strerr(int errcode, char *tmp_buf);
 #endif
-#ifdef __OS2__
-static char *os2_socket_strerr(int errcode, char *tmp_buf);
-#endif
 
 #ifdef MUTEX_LOCKS_AVAILABLE
-static inline void lock_logfile(void)
+static void lock_logfile(void)
 {
    privoxy_mutex_lock(&log_mutex);
 }
-static inline void unlock_logfile(void)
+static void unlock_logfile(void)
 {
    privoxy_mutex_unlock(&log_mutex);
 }
-static inline void lock_loginit(void)
+static void lock_loginit(void)
 {
    privoxy_mutex_lock(&log_init_mutex);
 }
-static inline void unlock_loginit(void)
+static void unlock_loginit(void)
 {
    privoxy_mutex_unlock(&log_init_mutex);
 }
@@ -123,10 +114,10 @@ static inline void unlock_loginit(void)
  * The locking/unlocking functions below should be
  * fleshed out for non-pthread implementations.
  */
-static inline void lock_logfile() {}
-static inline void unlock_logfile() {}
-static inline void lock_loginit() {}
-static inline void unlock_loginit() {}
+static void lock_logfile() {}
+static void unlock_logfile() {}
+static void lock_loginit() {}
+static void unlock_loginit() {}
 #endif
 
 /*********************************************************************
@@ -331,9 +322,9 @@ void init_error_log(const char *prog_name, const char *logfname)
    if ((NULL == fp) && (logfp != NULL))
    {
       /*
-       * Some platforms (like OS/2) don't allow us to open
-       * the same file twice, therefore we give it another
-       * shot after closing the old file descriptor first.
+       * Some platforms (like OS/2 (XXX: no longer supported)) don't
+       * allow us to open the same file twice, therefore we give it
+       * another shot after closing the old file descriptor first.
        *
        * We don't do it right away because it prevents us
        * from logging the "can't open logfile" message to
@@ -418,11 +409,6 @@ static long get_thread_id(void)
 {
    long this_thread;
 
-#ifdef __OS2__
-   PTIB     ptib;
-   APIRET   ulrc; /* XXX: I have no clue what this does */
-#endif /* __OS2__ */
-
    /* FIXME get current thread id */
 #ifdef FEATURE_PTHREAD
    this_thread = (long)pthread_self();
@@ -436,10 +422,6 @@ static long get_thread_id(void)
 #endif /* def __MACH__ */
 #elif defined(_WIN32)
    this_thread = GetCurrentThreadId();
-#elif defined(__OS2__)
-   ulrc = DosGetInfoBlocks(&ptib, NULL);
-   if (ulrc == 0)
-     this_thread = ptib -> tib_ptib2 -> tib2_ultid;
 #else
    /* Forking instead of threading. */
    this_thread = 1;
@@ -462,7 +444,7 @@ static long get_thread_id(void)
  * Returns     :  Number of written characters or 0 for error.
  *
  *********************************************************************/
-static inline size_t get_log_timestamp(char *buffer, size_t buffer_size)
+static size_t get_log_timestamp(char *buffer, size_t buffer_size)
 {
    size_t length;
    time_t now;
@@ -516,7 +498,7 @@ static inline size_t get_log_timestamp(char *buffer, size_t buffer_size)
  * Returns     :  Number of written characters or 0 for error.
  *
  *********************************************************************/
-static inline size_t get_clf_timestamp(char *buffer, size_t buffer_size)
+static size_t get_clf_timestamp(char *buffer, size_t buffer_size)
 {
    /*
     * Complex because not all OSs have tm_gmtoff or
@@ -539,7 +521,6 @@ static inline size_t get_clf_timestamp(char *buffer, size_t buffer_size)
 #elif defined(MUTEX_LOCKS_AVAILABLE)
    privoxy_mutex_lock(&localtime_mutex);
    tm_now = localtime(&now);
-   privoxy_mutex_unlock(&localtime_mutex);
 #else
    tm_now = localtime(&now);
 #endif
@@ -548,6 +529,9 @@ static inline size_t get_clf_timestamp(char *buffer, size_t buffer_size)
    mins = hrs * 60 + tm_now->tm_min - gmt.tm_min;
 
    length = strftime(buffer, buffer_size, "%d/%b/%Y:%H:%M:%S ", tm_now);
+#if !defined(HAVE_LOCALTIME_R) && defined(MUTEX_LOCKS_AVAILABLE)
+   privoxy_mutex_unlock(&localtime_mutex);
+#endif
 
    if (length > (size_t)0)
    {
@@ -579,7 +563,7 @@ static inline size_t get_clf_timestamp(char *buffer, size_t buffer_size)
  * Returns     :  Log level string.
  *
  *********************************************************************/
-static inline const char *get_log_level_string(int loglevel)
+static const char *get_log_level_string(int loglevel)
 {
    char *log_level_string = NULL;
 
@@ -599,6 +583,9 @@ static inline const char *get_log_level_string(int loglevel)
       case LOG_LEVEL_CONNECT:
          log_level_string = "Connect";
          break;
+     case LOG_LEVEL_TAGGING:
+         log_level_string = "Tagging";
+         break;
       case LOG_LEVEL_WRITING:
          log_level_string = "Writing";
          break;
@@ -744,7 +731,8 @@ void log_error(int loglevel, const char *fmt, ...)
          /*
           * XXX: Only necessary on platforms where multiple threads
           * can write to the buffer at the same time because we
-          * don't support mutexes (OS/2 for example).
+          * don't support mutexes.
+          * XXX: Are there any such platforms left now that OS/2 is gone?
           */
          outbuf[length] = '\0';
          continue;
@@ -842,17 +830,6 @@ void log_error(int loglevel, const char *fmt, ...)
 #ifdef _WIN32
             ival = WSAGetLastError();
             format_string = w32_socket_strerr(ival, tempbuf);
-#elif __OS2__
-            ival = sock_errno();
-            if (ival != 0)
-            {
-               format_string = os2_socket_strerr(ival, tempbuf);
-            }
-            else
-            {
-               ival = errno;
-               format_string = strerror(ival);
-            }
 #else /* ifndef _WIN32 */
             ival = errno;
 #ifdef HAVE_STRERROR
@@ -1075,82 +1052,6 @@ static char *w32_socket_strerr(int errcode, char *tmp_buf)
 #endif /* def _WIN32 */
 
 
-#ifdef __OS2__
-/*********************************************************************
- *
- * Function    :  os2_socket_strerr
- *
- * Description :  Translate the return value from sock_errno()
- *                into a string.
- *
- * Parameters  :
- *          1  :  errcode = The return value from sock_errno().
- *          2  :  tmp_buf = A temporary buffer that might be used to
- *                          store the string.
- *
- * Returns     :  String representing the error code.  This may be
- *                a global string constant or a string stored in
- *                tmp_buf.
- *
- *********************************************************************/
-static char *os2_socket_strerr(int errcode, char *tmp_buf)
-{
-#define TEXT_FOR_ERROR(code,text) \
-   if (errcode == code)           \
-   {                              \
-      return #code " - " text;    \
-   }
-
-   TEXT_FOR_ERROR(SOCEPERM          , "Not owner.")
-   TEXT_FOR_ERROR(SOCESRCH          , "No such process.")
-   TEXT_FOR_ERROR(SOCEINTR          , "Interrupted system call.")
-   TEXT_FOR_ERROR(SOCENXIO          , "No such device or address.")
-   TEXT_FOR_ERROR(SOCEBADF          , "Bad file number.")
-   TEXT_FOR_ERROR(SOCEACCES         , "Permission denied.")
-   TEXT_FOR_ERROR(SOCEFAULT         , "Bad address.")
-   TEXT_FOR_ERROR(SOCEINVAL         , "Invalid argument.")
-   TEXT_FOR_ERROR(SOCEMFILE         , "Too many open files.")
-   TEXT_FOR_ERROR(SOCEPIPE          , "Broken pipe.")
-   TEXT_FOR_ERROR(SOCEWOULDBLOCK    , "Operation would block.")
-   TEXT_FOR_ERROR(SOCEINPROGRESS    , "Operation now in progress.")
-   TEXT_FOR_ERROR(SOCEALREADY       , "Operation already in progress.")
-   TEXT_FOR_ERROR(SOCENOTSOCK       , "Socket operation on non-socket.")
-   TEXT_FOR_ERROR(SOCEDESTADDRREQ   , "Destination address required.")
-   TEXT_FOR_ERROR(SOCEMSGSIZE       , "Message too long.")
-   TEXT_FOR_ERROR(SOCEPROTOTYPE     , "Protocol wrong type for socket.")
-   TEXT_FOR_ERROR(SOCENOPROTOOPT    , "Protocol not available.")
-   TEXT_FOR_ERROR(SOCEPROTONOSUPPORT, "Protocol not supported.")
-   TEXT_FOR_ERROR(SOCESOCKTNOSUPPORT, "Socket type not supported.")
-   TEXT_FOR_ERROR(SOCEOPNOTSUPP     , "Operation not supported.")
-   TEXT_FOR_ERROR(SOCEPFNOSUPPORT   , "Protocol family not supported.")
-   TEXT_FOR_ERROR(SOCEAFNOSUPPORT   , "Address family not supported by protocol family.")
-   TEXT_FOR_ERROR(SOCEADDRINUSE     , "Address already in use.")
-   TEXT_FOR_ERROR(SOCEADDRNOTAVAIL  , "Can't assign requested address.")
-   TEXT_FOR_ERROR(SOCENETDOWN       , "Network is down.")
-   TEXT_FOR_ERROR(SOCENETUNREACH    , "Network is unreachable.")
-   TEXT_FOR_ERROR(SOCENETRESET      , "Network dropped connection on reset.")
-   TEXT_FOR_ERROR(SOCECONNABORTED   , "Software caused connection abort.")
-   TEXT_FOR_ERROR(SOCECONNRESET     , "Connection reset by peer.")
-   TEXT_FOR_ERROR(SOCENOBUFS        , "No buffer space available.")
-   TEXT_FOR_ERROR(SOCEISCONN        , "Socket is already connected.")
-   TEXT_FOR_ERROR(SOCENOTCONN       , "Socket is not connected.")
-   TEXT_FOR_ERROR(SOCESHUTDOWN      , "Can't send after socket shutdown.")
-   TEXT_FOR_ERROR(SOCETOOMANYREFS   , "Too many references: can't splice.")
-   TEXT_FOR_ERROR(SOCETIMEDOUT      , "Operation timed out.")
-   TEXT_FOR_ERROR(SOCECONNREFUSED   , "Connection refused.")
-   TEXT_FOR_ERROR(SOCELOOP          , "Too many levels of symbolic links.")
-   TEXT_FOR_ERROR(SOCENAMETOOLONG   , "File name too long.")
-   TEXT_FOR_ERROR(SOCEHOSTDOWN      , "Host is down.")
-   TEXT_FOR_ERROR(SOCEHOSTUNREACH   , "No route to host.")
-   TEXT_FOR_ERROR(SOCENOTEMPTY      , "Directory not empty.")
-   TEXT_FOR_ERROR(SOCEOS2ERR        , "OS/2 Error.")
-
-   sprintf(tmp_buf, "(error number %d)", errcode);
-   return tmp_buf;
-}
-#endif /* def __OS2__ */
-
-
 /*
   Local Variables:
   tab-width: 3