-#ifndef _JCC_H
-#define _JCC_H
-#define JCC_H_VERSION "$Id: jcc.h,v 1.1 2001/05/13 21:57:06 administrator Exp $"
+#ifndef JCC_H_INCLUDED
+#define JCC_H_INCLUDED
+#define JCC_H_VERSION "$Id: jcc.h,v 1.28 2010/01/03 12:37:14 fabiankeil Exp $"
/*********************************************************************
*
- * File : $Source: /home/administrator/cvs/ijb/jcc.h,v $
+ * File : $Source: /cvsroot/ijbswa/current/jcc.h,v $
*
* Purpose : Main file. Contains main() method, main loop, and
* the main connection-handling function.
*
- * Copyright : Written by and Copyright (C) 2001 the SourceForge
- * IJBSWA team. http://ijbswa.sourceforge.net
+ * Copyright : Written by and Copyright (C) 2001-2006 the SourceForge
+ * Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* or write to the Free Software Foundation, Inc., 59
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
- * Revisions :
- * $Log: jcc.h,v $
- *
*********************************************************************/
-\f
-
-/* Declare struct FILE for vars and funcs. */
-#include <stdio.h>
-
-/* All of our project's data types. */
-#include "project.h"
-#include "loadcfg.h"
#ifdef __cplusplus
extern "C" {
#endif
-#define freez(X) if(X) free(X); X = NULL
-
+struct client_state;
+struct file_list;
/* Global variables */
-
-#ifdef STATISTICS
+#ifdef FEATURE_STATISTICS
extern int urls_read;
extern int urls_rejected;
-#endif /*def STATISTICS*/
+#endif /*def FEATURE_STATISTICS*/
+
+extern struct client_states clients[1];
+extern struct file_list files[1];
+
+#ifdef unix
+extern const char *pidfile;
+#endif
+extern int daemon_mode;
+
+#ifdef FEATURE_GRACEFUL_TERMINATION
+extern int g_terminate;
+#endif
+
+#if defined(FEATURE_PTHREAD) || defined(_WIN32)
+#define MUTEX_LOCKS_AVAILABLE
+
+#ifdef FEATURE_PTHREAD
+#include <pthread.h>
+
+typedef pthread_mutex_t privoxy_mutex_t;
+
+#else
+
+typedef CRITICAL_SECTION privoxy_mutex_t;
+
+#endif
+
+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;
+extern privoxy_mutex_t connection_reuse_mutex;
-extern struct client_state clients[];
+#ifndef HAVE_GMTIME_R
+extern privoxy_mutex_t gmtime_mutex;
+#endif /* ndef HAVE_GMTIME_R */
-extern struct file_list files[];
+#ifndef HAVE_LOCALTIME_R
+extern privoxy_mutex_t localtime_mutex;
+#endif /* ndef HAVE_GMTIME_R */
-/* Global constants */
+#if !defined(HAVE_GETHOSTBYADDR_R) || !defined(HAVE_GETHOSTBYNAME_R)
+extern privoxy_mutex_t resolver_mutex;
+#endif /* !defined(HAVE_GETHOSTBYADDR_R) || !defined(HAVE_GETHOSTBYNAME_R) */
-extern const char DEFAULT_USER_AGENT[];
+#ifndef HAVE_RANDOM
+extern privoxy_mutex_t rand_mutex;
+#endif /* ndef HAVE_RANDOM */
+#endif /* FEATURE_PTHREAD */
/* Functions */
#ifdef __MINGW32__
-int _main(int argc, const char *argv[]);
+int real_main(int argc, char **argv);
#else
-int main(int argc, const char *argv[]);
+int main(int argc, char **argv);
#endif
/* Revision control strings from this header and associated .c file */
} /* extern "C" */
#endif
-#endif /* ndef _JCC_H */
+#endif /* ndef JCC_H_INCLUDED */
/*
Local Variables: