X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=jcc.h;h=43b765fbbdaf6e5f6189fa337376f64c938d319b;hp=a43a12cc80ced9f3a23c79933bf129e5744ed08f;hb=b9caf4a4a3d9597c7c1bceb82f7d6d18970fa968;hpb=a31cb2266750220828a56a307c0b492c12c24d2a diff --git a/jcc.h b/jcc.h index a43a12cc..43b765fb 100644 --- a/jcc.h +++ b/jcc.h @@ -1,21 +1,21 @@ -#ifndef _JCC_H -#define _JCC_H -#define JCC_H_VERSION "$Id: jcc.h,v 1.1.1.1 2001/05/15 13:58:56 oes Exp $" +#ifndef JCC_H_INCLUDED +#define JCC_H_INCLUDED +#define JCC_H_VERSION "$Id: jcc.h,v 1.35 2014/06/02 06:22:21 fabiankeil Exp $" /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/jcc.h,v $ * - * Purpose : Main file. Contains main() method, main loop, and + * 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-2014 the + * Privoxy team. http://www.privoxy.org/ * * Based on the Internet Junkbuster originally written - * by and Copyright (C) 1997 Anonymous Coders and + * by and Copyright (C) 1997 Anonymous Coders and * Junkbusters Corporation. http://www.junkbusters.com * - * This program is free software; you can redistribute it + * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General * Public License as published by the Free Software * Foundation; either version 2 of the License, or (at @@ -33,60 +33,91 @@ * or write to the Free Software Foundation, Inc., 59 * Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - * Revisions : - * $Log: jcc.h,v $ - * Revision 1.1.1.1 2001/05/15 13:58:56 oes - * Initial import of version 2.9.3 source tree - * - * *********************************************************************/ - -/* Declare struct FILE for vars and funcs. */ -#include -/* All of our project's data types. */ -#include "project.h" +struct client_state; +struct file_list; + +/* Global variables */ + +#ifdef FEATURE_STATISTICS +extern int urls_read; +extern int urls_rejected; +#endif /*def FEATURE_STATISTICS*/ -#include "loadcfg.h" +extern struct client_states clients[1]; +extern struct file_list files[1]; -#ifdef __cplusplus -extern "C" { +#ifdef unix +extern const char *pidfile; #endif +extern int daemon_mode; -#define freez(X) if(X) free(X); X = NULL +#ifdef FEATURE_GRACEFUL_TERMINATION +extern int g_terminate; +#endif +#if defined(FEATURE_PTHREAD) || defined(_WIN32) +#define MUTEX_LOCKS_AVAILABLE -/* Global variables */ +#ifdef FEATURE_PTHREAD +#include +typedef pthread_mutex_t privoxy_mutex_t; -#ifdef STATISTICS -extern int urls_read; -extern int urls_rejected; -#endif /*def STATISTICS*/ +#else -extern struct client_state clients[]; +typedef CRITICAL_SECTION privoxy_mutex_t; -extern struct file_list files[]; +#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; + +#ifdef FEATURE_EXTERNAL_FILTERS +extern privoxy_mutex_t external_filter_mutex; +#endif + +#ifdef FEATURE_CLIENT_TAGS +extern privoxy_mutex_t client_tags_mutex; +#endif + +#ifndef HAVE_GMTIME_R +extern privoxy_mutex_t gmtime_mutex; +#endif /* ndef HAVE_GMTIME_R */ + +#ifndef HAVE_LOCALTIME_R +extern privoxy_mutex_t localtime_mutex; +#endif /* ndef HAVE_GMTIME_R */ + +#if !defined(HAVE_GETHOSTBYADDR_R) || !defined(HAVE_GETHOSTBYNAME_R) +extern privoxy_mutex_t resolver_mutex; +#endif /* !defined(HAVE_GETHOSTBYADDR_R) || !defined(HAVE_GETHOSTBYNAME_R) */ + +#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 const char jcc_rcs[]; extern const char jcc_h_rcs[]; -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* ndef _JCC_H */ +#endif /* ndef JCC_H_INCLUDED */ /* Local Variables: