#ifndef PROJECT_H_INCLUDED
#define PROJECT_H_INCLUDED
/** Version string. */
-#define PROJECT_H_VERSION "$Id: project.h,v 1.200 2013/11/24 14:24:18 fabiankeil Exp $"
+#define PROJECT_H_VERSION "$Id: project.h,v 1.208 2014/11/12 12:00:41 fabiankeil Exp $"
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/project.h,v $
* project. Does not define any variables or functions
* (though it does declare some macros).
*
- * Copyright : Written by and Copyright (C) 2001-2012 the
+ * Copyright : Written by and Copyright (C) 2001-2014 the
* Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
*/
#define HOSTENT_BUFFER_SIZE 2048
-/**
- * Do not use. Originally this was so that you can
- * say "while (FOREVER) { ...do something... }".
- * However, this gives a warning with some compilers (e.g. VC++).
- * Instead, use "for (;;) { ...do something... }".
- */
-#define FOREVER 1
-
/**
* Default TCP/IP address to listen on, as a string.
* Set to "127.0.0.1:8118".
/** Index into current_action_spec::multi[] for server-header tags to apply. */
#define ACTION_MULTI_SERVER_HEADER_TAGGER 5
/** Number of multi-string actions. */
-#define ACTION_MULTI_COUNT 6
+#define ACTION_MULTI_EXTERNAL_FILTER 6
+/** Number of multi-string actions. */
+#define ACTION_MULTI_COUNT 7
/**
unsigned long add; /**< Actions to add. A bit set to "1" means add action. */
/**
- * Paramaters for those actions that require them.
+ * Parameters for those actions that require them.
* Each entry is valid if & only if the corresponding entry in "flags" is
* set.
*/
*/
#define CSP_FLAG_TOGGLED_ON 0x20U
-/**
- * Flag for csp->flags: Set if we answered the request ourselve.
- */
-#define CSP_FLAG_CRUNCHED 0x40U
-
/**
* Flag for csp->flags: Set if an acceptable Connection header
* has already been set by the client.
*/
#define CSP_FLAG_CHUNKED_CLIENT_BODY 0x01000000U
+/**
+ * Flag for csp->flags: Set if the client set the Expect header
+ */
+#define CSP_FLAG_UNSUPPORTED_CLIENT_EXPECTATION 0x02000000U
+
+/**
+ * Flag for csp->flags: Set if we answered the request ourselve.
+ */
+#define CSP_FLAG_CRUNCHED 0x04000000U
+
/*
* Flags for use in return codes of child processes
FT_SERVER_HEADER_FILTER = 2,
FT_CLIENT_HEADER_TAGGER = 3,
FT_SERVER_HEADER_TAGGER = 4,
+#ifdef FEATURE_EXTERNAL_FILTERS
+ FT_EXTERNAL_CONTENT_FILTER = 5,
+#endif
FT_INVALID_FILTER = 42,
};
+
+#ifdef FEATURE_EXTERNAL_FILTERS
+#define MAX_FILTER_TYPES 6
+#else
#define MAX_FILTER_TYPES 5
+#endif
/**
* This struct represents one filter (one block) from
/** Nonzero to enable multithreading. */
int multi_threaded;
- /**
- * Bitmask of features that can be enabled/disabled through the config
- * file. Currently defined bits:
- *
- * - RUNTIME_FEATURE_CGI_EDIT_ACTIONS
- * - RUNTIME_FEATURE_CGI_TOGGLE
- * - RUNTIME_FEATURE_HTTP_TOGGLE
- * - RUNTIME_FEATURE_SPLIT_LARGE_FORMS
- * - RUNTIME_FEATURE_ACCEPT_INTERCEPTED_REQUESTS
- * - RUNTIME_FEATURE_ENFORCE_BLOCKS
- * - RUNTIME_FEATURE_CGI_CRUNCHING
- * - RUNTIME_FEATURE_CONNECTION_KEEP_ALIVE
- * - RUNTIME_FEATURE_CONNECTION_SHARING
- * - RUNTIME_FEATURE_EMPTY_DOC_RETURNS_OK
- */
+ /** Bitmask of features that can be controlled through the config file. */
unsigned feature_flags;
/** The log file name. */
/** The directory for customized CGI templates. */
const char *templdir;
+#ifdef FEATURE_EXTERNAL_FILTERS
+ /** The template used to create temporary files. */
+ const char *temporary_directory;
+#endif
+
/** The log file directory. */
const char *logdir;
/** Calculates the number of elements in an array, using sizeof. */
#define SZ(X) (sizeof(X) / sizeof(*X))
-#ifdef FEATURE_FORCE_LOAD
-/** The force load URL prefix. */
+/** The force load URL prefix. Not behind an ifdef because
+ * it's always used for the show-status page. */
#define FORCE_PREFIX "/PRIVOXY-FORCE"
-#endif /* def FEATURE_FORCE_LOAD */
#ifdef FEATURE_NO_GIFS
/** The MIME type for images ("image/png" or "image/gif"). */