Prepare for critical sections on Windows by adding a
[privoxy.git] / jcc.h
diff --git a/jcc.h b/jcc.h
index 4c263c7..03482e8 100644 (file)
--- a/jcc.h
+++ b/jcc.h
@@ -1,6 +1,6 @@
 #ifndef JCC_H_INCLUDED
 #define JCC_H_INCLUDED
-#define JCC_H_VERSION "$Id: jcc.h,v 1.21 2007/04/22 13:18:06 fabiankeil Exp $"
+#define JCC_H_VERSION "$Id: jcc.h,v 1.22 2007/06/01 18:16:36 fabiankeil Exp $"
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/jcc.h,v $
  *
  * Revisions   :
  *    $Log: jcc.h,v $
+ *    Revision 1.22  2007/06/01 18:16:36  fabiankeil
+ *    Use the same mutex for gethostbyname() and gethostbyaddr() to prevent
+ *    deadlocks and crashes on OpenBSD and possibly other OS with neither
+ *    gethostbyname_r() nor gethostaddr_r(). Closes BR#1729174.
+ *    Thanks to Ralf Horstmann for report and solution.
+ *
  *    Revision 1.21  2007/04/22 13:18:06  fabiankeil
  *    Keep the HTTP snippets local.
  *
@@ -182,23 +188,29 @@ extern int g_terminate;
 
 #ifdef FEATURE_PTHREAD
 #include <pthread.h>
-extern pthread_mutex_t log_mutex;
-extern pthread_mutex_t log_init_mutex;
+
+typedef pthread_mutex_t privoxy_mutex_t;
+
+extern void privoxy_mutex_lock(privoxy_mutex_t *mutex);
+extern void privoxy_mutex_unlock(privoxy_mutex_t *mutex);
+
+extern privoxy_mutex_t log_mutex;
+extern privoxy_mutex_t log_init_mutex;
 
 #ifndef HAVE_GMTIME_R
-extern pthread_mutex_t gmtime_mutex;
+extern privoxy_mutex_t gmtime_mutex;
 #endif /* ndef HAVE_GMTIME_R */
 
 #ifndef HAVE_LOCALTIME_R
-extern pthread_mutex_t localtime_mutex;
+extern privoxy_mutex_t localtime_mutex;
 #endif /* ndef HAVE_GMTIME_R */
 
 #if !defined(HAVE_GETHOSTBYADDR_R) || !defined(HAVE_GETHOSTBYNAME_R)
-extern pthread_mutex_t resolver_mutex;
+extern privoxy_mutex_t resolver_mutex;
 #endif /* !defined(HAVE_GETHOSTBYADDR_R) || !defined(HAVE_GETHOSTBYNAME_R) */
 
 #ifndef HAVE_RANDOM
-extern pthread_mutex_t rand_mutex;
+extern privoxy_mutex_t rand_mutex;
 #endif /* ndef HAVE_RANDOM */
 
 #endif /* FEATURE_PTHREAD */