Fix spelling of 'administrator' in the template comments
[privoxy.git] / project.h
index 1f6e7d4..9b54879 100644 (file)
--- a/project.h
+++ b/project.h
@@ -1,7 +1,7 @@
 #ifndef PROJECT_H_INCLUDED
 #define PROJECT_H_INCLUDED
 /** Version string. */
-#define PROJECT_H_VERSION "$Id: project.h,v 1.202 2013/11/24 14:26:27 fabiankeil Exp $"
+#define PROJECT_H_VERSION "$Id: project.h,v 1.211 2016/01/16 12:30:28 fabiankeil Exp $"
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/project.h,v $
@@ -10,7 +10,7 @@
  *                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
@@ -566,7 +566,9 @@ struct iob
 /** 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
 
 
 /**
@@ -640,7 +642,7 @@ struct url_actions
 };
 
 enum forwarder_type {
-   /**< Don't use a SOCKS server               */
+   /**< Don't use a SOCKS server, forward to a HTTP proxy directly */
    SOCKS_NONE =  0,
    /**< original SOCKS 4 protocol              */
    SOCKS_4    = 40,
@@ -650,6 +652,12 @@ enum forwarder_type {
    SOCKS_5    = 50,
    /**< Like SOCKS5, but uses non-standard Tor extensions (currently only optimistic data) */
    SOCKS_5T,
+   /**<
+    * Don't use a SOCKS server, forward to the specified webserver.
+    * The difference to SOCKS_NONE is that a request line without
+    * full URL is sent.
+    */
+   FORWARD_WEBSERVER,
 };
 
 /*
@@ -724,11 +732,6 @@ struct reusable_connection
  */
 #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.
@@ -846,19 +849,29 @@ struct reusable_connection
  */
 #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
  */
 
 /**
- * Flag for process return code: Set if exiting porcess has been toggled
+ * Flag for process return code: Set if exiting process has been toggled
  * during its lifetime.
  */
 #define RC_FLAG_TOGGLED   0x10
 
 /**
- * Flag for process return code: Set if exiting porcess has blocked its
+ * Flag for process return code: Set if exiting process has blocked its
  * request.
  */
 #define RC_FLAG_BLOCKED   0x20
@@ -1115,9 +1128,17 @@ enum filter_type
    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
@@ -1234,21 +1255,7 @@ struct configuration_spec
    /** 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. */
@@ -1260,6 +1267,11 @@ struct configuration_spec
    /** 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;
 
@@ -1359,10 +1371,9 @@ struct configuration_spec
 /** 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"). */