X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=acconfig.h;h=9ec87fdc1300537328d22df4d7ad6956c62e6c24;hp=182246164dbea867fea630308151f5f9c9b3f0fb;hb=ab082f57780b5acb5b1305d82309a1dea8c026a1;hpb=322bee5237b07364f400a3ba417102fa3bc6abab diff --git a/acconfig.h b/acconfig.h index 18224616..9ec87fdc 100644 --- a/acconfig.h +++ b/acconfig.h @@ -1,23 +1,23 @@ -#ifndef _CONFIG_H -#define _CONFIG_H +#ifndef CONFIG_H_INCLUDED +#define CONFIG_H_INCLUDED /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/acconfig.h,v $ * * Purpose : This file should be the first thing included in every - * .c file. (Before even system headers). It contains + * .c file. (Before even system headers). It contains * #define statements for various features. It was * introduced because the compile command line started * getting ludicrously long with feature defines. * - * 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. https://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 @@ -35,101 +35,8 @@ * or write to the Free Software Foundation, Inc., 59 * Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - * Revisions : - * $Log: acconfig.h,v $ - * Revision 1.6 2001/07/15 17:54:29 jongfoster - * Renaming #define STATIC to STATIC_PCRE - * Adding new #define FEATURE_PTHREAD that will be used to enable - * POSIX threads support. - * - * Revision 1.5 2001/07/13 13:48:37 oes - * - (Fix:) Copied CODE_STATUS #define from config.h.in - * - split REGEX #define into REGEX_GNU and REGEX_PCRE - * and removed PCRE. - * (REGEX = REGEX_GNU || REGEX_PCRE per project.h) - * - Moved STATIC (for pcre) here from Makefile.in - * - Introduced STATIC_PCRS #define to allow for dynaimc linking with - * libpcrs - * - Removed PCRS #define, since pcrs is now needed for CGI anyway - * - * Revision 1.4 2001/05/29 09:50:24 jongfoster - * Unified blocklist/imagelist/permissionslist. - * File format is still under discussion, but the internal changes - * are (mostly) done. - * - * Also modified interceptor behaviour: - * - We now intercept all URLs beginning with one of the following - * prefixes (and *only* these prefixes): - * * http://i.j.b/ - * * http://ijbswa.sf.net/config/ - * * http://ijbswa.sourceforge.net/config/ - * - New interceptors "home page" - go to http://i.j.b/ to see it. - * - Internal changes so that intercepted and fast redirect pages - * are not replaced with an image. - * - Interceptors now have the option to send a binary page direct - * to the client. (i.e. ijb-send-banner uses this) - * - Implemented show-url-info interceptor. (Which is why I needed - * the above interceptors changes - a typical URL is - * "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif". - * The previous mechanism would not have intercepted that, and - * if it had been intercepted then it then it would have replaced - * it with an image.) - * - * Revision 1.3 2001/05/26 01:26:34 jongfoster - * New #define, WIN_GUI_EDIT, enables the (embryonic) Win32 GUI editor. - * This #define cannot be set from ./configure - there's no point, it - * doesn't work yet. See feature request # 425722 - * - * Revision 1.2 2001/05/22 17:43:35 oes - * - * - Enabled filtering banners by size rather than URL - * by adding patterns that replace all standard banner - * sizes with the "Junkbuster" gif to the re_filterfile - * - * - Enabled filtering WebBugs by providing a pattern - * which kills all 1x1 images - * - * - Added support for PCRE_UNGREEDY behaviour to pcrs, - * which is selected by the (nonstandard and therefore - * capital) letter 'U' in the option string. - * It causes the quantifiers to be ungreedy by default. - * Appending a ? turns back to greedy (!). - * - * - Added a new interceptor ijb-send-banner, which - * sends back the "Junkbuster" gif. Without imagelist or - * MSIE detection support, or if tinygif = 1, or the - * URL isn't recognized as an imageurl, a lame HTML - * explanation is sent instead. - * - * - Added new feature, which permits blocking remote - * script redirects and firing back a local redirect - * to the browser. - * The feature is conditionally compiled, i.e. it - * can be disabled with --disable-fast-redirects, - * plus it must be activated by a "fast-redirects" - * line in the config file, has its own log level - * and of course wants to be displayed by show-proxy-args - * Note: Boy, all the #ifdefs in 1001 locations and - * all the fumbling with configure.in and acconfig.h - * were *way* more work than the feature itself :-( - * - * - Because a generic redirect template was needed for - * this, tinygif = 3 now uses the same. - * - * - Moved GIFs, and other static HTTP response templates - * to project.h - * - * - Many minor fixes - * - * - Removed some >400 CRs again (Jon, you really worked - * a lot! ;-) - * - * Revision 1.1.1.1 2001/05/15 13:58:45 oes - * Initial import of version 2.9.3 source tree - * - * *********************************************************************/ - + @TOP@ /* @@ -153,27 +60,19 @@ #undef VERSION /* - * Status of the code: alpha, beta or stable + * Status of the code: "alpha", "beta" or "stable". */ #undef CODE_STATUS /* - * Regular expression matching for URLs. (Highly recommended). - * If neither of these are defined then you can ony use prefix matching. - * Don't bother to change this here! Use configure instead. - */ -#undef REGEX_GNU -#undef REGEX_PCRE - -/* * Should pcre be statically built in instead of linkling with libpcre? * (This is determined by configure depending on the availiability of - * libpcre and user preferences). The name is ugly, but pcre needs it. + * libpcre and user preferences). * Don't bother to change this here! Use configure instead. */ -#undef STATIC_PCRE +#undef FEATURE_DYNAMIC_PCRE -/* +/* * Should pcrs be statically built in instead of linkling with libpcrs? * (This is determined by configure depending on the availiability of * libpcrs and user preferences). @@ -182,120 +81,161 @@ #undef STATIC_PCRS /* - * Allow JunkBuster to be "disabled" so it is just a normal non-blocking - * non-anonymizing proxy. This is useful if you're trying to access a - * blocked or broken site - just change the setting in the config file - * and send a SIGHUP (UN*X), or use the handy "Disable" menu option (Windows - * GUI). + * Allows the use of an ACL to control access to the proxy by IP address. */ -#undef TOGGLE +#undef FEATURE_ACL /* - * If a stream is compressed via gzip (Netscape specific I think), then - * it cannot be modified with Perl regexps. This forces it to be - * uncompressed. + * Allow Privoxy to use accf_http(9) if supported. */ -#undef DENY_GZIP +#undef FEATURE_ACCEPT_FILTER /* - * Enables statistics function. + * Enables the web-based configuration (actionsfile) editor. If you + * have a shared proxy, you might want to turn this off. */ -#undef STATISTICS +#undef FEATURE_CGI_EDIT_ACTIONS + +/* + * Locally redirect remote script-redirect URLs + */ +#undef FEATURE_FAST_REDIRECTS /* * Bypass filtering for 1 page only */ -#undef FORCE_LOAD +#undef FEATURE_FORCE_LOAD /* - * Locally redirect remote script-redirect URLs + * Allow blocking using images as well as HTML. + * If you do not define this then everything is blocked as HTML. */ -#undef FAST_REDIRECTS +#undef FEATURE_IMAGE_BLOCKING /* - * Split the show-proxy-args page into a page for each config file. + * Use PNG instead of GIF for built-in images */ -#undef SPLIT_PROXY_ARGS +#undef FEATURE_NO_GIFS /* - * Kills JavaScript popups - window.open, onunload, etc. + * Allow to shutdown Privoxy through the webinterface. */ -#undef KILLPOPUPS +#undef FEATURE_GRACEFUL_TERMINATION /* - * Support for webDAV - e.g. so Microsoft Outlook can access HotMail e-mail + * Allow PCRE syntax in host patterns. */ -#undef WEBDAV +#undef FEATURE_PCRE_HOST_PATTERNS /* - * Detect image requests automatically for MSIE. Will fall back to - * other image-detection methods (i.e. "+image" permission) for other - * browsers. - * - * You must also define IMAGE_BLOCKING to use this feature. - * - * It detects the following header pair as an image request: - * - * User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) - * Accept: * / * - * - * And the following as a HTML request: - * - * User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) - * Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, * / * - * - * And no, I haven't got that backwards - IE is being wierd. - * - * Known limitations: - * 1) If you press shift-reload on a blocked HTML page, you get - * the image "blocked" page, not the HTML "blocked" page. - * 2) Once an image "blocked" page has been sent, viewing it - * in it's own browser window *should* bring up the HTML - * "blocked" page, but it doesn't. You need to clear the - * browser cache to get the HTML version again. - * - * These limitations are due to IE making inconsistent choices - * about which "Accept:" header to send. + * Gather extended statistics. */ -#undef DETECT_MSIE_IMAGES +#undef FEATURE_EXTENDED_STATISTICS /* - * Allow blocking using images as well as HTML. - * If you do not define this then everything is blocked as HTML. - * - * Note that this is required if you want to use DETECT_MSIE_IMAGES. + * Allow filtering with scripts and programs. */ -#undef IMAGE_BLOCKING +#undef FEATURE_EXTERNAL_FILTERS /* - * Allows the use of ACL files to control access to the proxy by IP address. + * Keep connections alive if possible. */ -#undef ACL_FILES +#undef FEATURE_CONNECTION_KEEP_ALIVE + +/* + * Allow to share outgoing connections between incoming connections. + */ +#undef FEATURE_CONNECTION_SHARING + +/* + * Use POSIX threads instead of native threads. + */ +#undef FEATURE_PTHREAD + +/* + * Enables statistics function. + */ +#undef FEATURE_STATISTICS + +/* + * Enable strptime() sanity checks. + */ +#undef FEATURE_STRPTIME_SANITY_CHECKS + +/* + * Allow Privoxy to be "disabled" so it is just a normal non-blocking + * non-anonymizing proxy. This is useful if you're trying to access a + * blocked or broken site - just change the setting in the config file, + * or use the handy "Disable" menu option in the Windows GUI. + */ +#undef FEATURE_TOGGLE /* * Allows the use of trust files. */ -#undef TRUST_FILES +#undef FEATURE_TRUST /* - * Allows the use of jar files to capture cookies. + * Defined on Solaris only. Makes the system libraries thread safe. */ -#undef JAR_FILES +#undef _REENTRANT /* - * Define this to use the Windows GUI for editing the blocklist. - * FIXME: This feature is only partially implemented and does not work - * FIXME: This #define can never be set by ./configure. + * Defined on Solaris only. Without this, many important functions are not + * defined in the system headers. */ -#undef WIN_GUI_EDIT +#undef __EXTENSIONS__ /* - * Use POSIX threads instead of native threads. + * Defined always. + * FIXME: Don't know what it does or why we need it. + * (presumably something to do with MultiThreading?) */ -#undef FEATURE_PTHREAD +#undef __MT__ + +/* If the (nonstandard and thread-safe) function gethostbyname_r + * is available, select which signature to use + */ +#undef HAVE_GETHOSTBYNAME_R_6_ARGS +#undef HAVE_GETHOSTBYNAME_R_5_ARGS +#undef HAVE_GETHOSTBYNAME_R_3_ARGS + +/* If the (nonstandard and thread-safe) function gethostbyaddr_r + * is available, select which signature to use + */ +#undef HAVE_GETHOSTBYADDR_R_8_ARGS +#undef HAVE_GETHOSTBYADDR_R_7_ARGS +#undef HAVE_GETHOSTBYADDR_R_5_ARGS + +/* Defined if you have gmtime_r and localtime_r with a signature + * of (struct time *, struct tm *) + */ +#undef HAVE_GMTIME_R +#undef HAVE_LOCALTIME_R + +/* Define to 'int' if doesn't have it. + */ +#undef socklen_t + +/* Define if pcre.h must be included as + */ +#undef PCRE_H_IN_SUBDIR + +/* Define if pcreposix.h must be included as + */ +#undef PCREPOSIX_H_IN_SUBDIR @BOTTOM@ +/* + * Defined always. + * FIXME: Don't know what it does or why we need it. + * (presumably something to do with ANSI Standard C?) + */ +#ifndef __STDC__ +#define __STDC__ 1 +#endif /* ndef __STDC__ */ + /* * Need to set up this define only for the Pthreads library for * Win32, available from http://sources.redhat.com/pthreads-win32/ @@ -313,5 +253,21 @@ #endif /* defined(FEATURE_PTHREAD) && defined(__BEOS__) */ +/* + * On OpenBSD and maybe also FreeBSD, gcc doesn't define the cpp + * symbol unix; it defines __unix__ and sometimes not even that: + */ +#if ( defined(__unix__) || defined(__NetBSD__) ) && !defined(unix) +#define unix 1 +#endif + +/* + * It's too easy to accidentally use a Cygwin or MinGW32 version of config.h + * under VC++, and it usually gives many weird error messages. Let's make + * the error messages understandable, by bailing out now. + */ +#ifdef _MSC_VER +#error For MS VC++, please use vc_config_winthreads.h or vc_config_pthreads.h. You can usually do this by selecting the "Build", "Clean" menu option. +#endif /* def _MSC_VER */ -#endif /* _CONFIG_H */ +#endif /* CONFIG_H_INCLUDED */