Change CODE_STATUS to stable
[privoxy.git] / project.h
index 8b0e68c..9c91cb1 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.163 2011/02/19 13:58:48 fabiankeil Exp $"
+#define PROJECT_H_VERSION "$Id: project.h,v 1.170 2011/07/17 13:34:36 fabiankeil Exp $"
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/project.h,v $
@@ -148,7 +148,7 @@ typedef int jb_err;
 #define JB_ERR_CGI_PARAMS 2 /**< Missing or corrupt CGI parameters        */
 #define JB_ERR_FILE       3 /**< Error opening, reading or writing a file */
 #define JB_ERR_PARSE      4 /**< Error parsing file                       */
-#define JB_ERR_MODIFIED   5 /**< File has been modified outside of the  
+#define JB_ERR_MODIFIED   5 /**< File has been modified outside of the
                                  CGI actions editor.                      */
 #define JB_ERR_COMPRESS   6 /**< Error on decompression                   */
 
@@ -173,7 +173,7 @@ typedef int jb_err;
  */
 #define ijb_toupper(__X) toupper((int)(unsigned char)(__X))
 #define ijb_tolower(__X) tolower((int)(unsigned char)(__X))
-#define ijb_isspace(__X) isspace((int)(unsigned char)(__X))  
+#define ijb_isspace(__X) isspace((int)(unsigned char)(__X))
 
 /**
  * Use for statically allocated buffers if you have no other choice.
@@ -233,7 +233,7 @@ struct list_entry
     * your own code.
     */
    char *str;
-   
+
    /** Next entry in the linked list, or NULL if no more. */
    struct list_entry *next;
 };
@@ -675,7 +675,7 @@ struct reusable_connection
 /*
  * Flags for use in csp->flags
  */
+
 /**
  * Flag for csp->flags: Set if this client is processing data.
  * Cleared when the thread associated with this structure dies.
@@ -810,6 +810,17 @@ struct reusable_connection
  */
 #define CSP_FLAG_REUSED_CLIENT_CONNECTION           0x00100000U
 
+/**
+ * Flag for csp->flags: Set if the supports deflate compression.
+ */
+#define CSP_FLAG_CLIENT_SUPPORTS_DEFLATE            0x00200000U
+
+/**
+ * Flag for csp->flags: Set if the content has been deflated by Privoxy
+ */
+#define CSP_FLAG_BUFFERED_CONTENT_DEFLATED          0x00400000U
+
+
 /*
  * Flags for use in return codes of child processes
  */
@@ -832,6 +843,12 @@ struct reusable_connection
  */
 #define MAX_AF_FILES 10
 
+/**
+ * Maximum number of sockets to listen to.  This limit is arbitrary - it's just used
+ * to size an array.
+ */
+#define MAX_LISTENING_SOCKETS 10
+
 /**
  * The state of a Privoxy processing thread.
  */
@@ -995,7 +1012,7 @@ struct file_list
     * Read-only once the structure has been created.
     */
    time_t lastmodified;
-   
+
    /**
     * The full filename.
     */
@@ -1179,6 +1196,9 @@ struct access_control_list
 /** configuration_spec::feature_flags: Pages blocked with +handle-as-empty-doc get a return status of 200 OK. */
 #define RUNTIME_FEATURE_EMPTY_DOC_RETURNS_OK       512U
 
+/** configuration_spec::feature_flags: Buffered content is sent compressed if the client supports it. */
+#define RUNTIME_FEATURE_COMPRESSION               1024U
+
 /**
  * Data loaded from the configuration file.
  *
@@ -1188,7 +1208,7 @@ struct configuration_spec
 {
    /** What to log */
    int debug;
-   
+
    /** Nonzero to enable multithreading. */
    int multi_threaded;
 
@@ -1245,11 +1265,11 @@ struct configuration_spec
    /** The hostname to show on CGI pages, or NULL to use the real one. */
    const char *hostname;
 
-   /** IP address to bind to.  Defaults to HADDR_DEFAULT == 127.0.0.1. */
-   const char *haddr;
+   /** IP addresses to bind to.  Defaults to HADDR_DEFAULT == 127.0.0.1. */
+   const char *haddr[MAX_LISTENING_SOCKETS];
 
-   /** Port to bind to.  Defaults to HADDR_PORT == 8118. */
-   int         hport;
+   /** Ports to bind to.  Defaults to HADDR_PORT == 8118. */
+   int         hport[MAX_LISTENING_SOCKETS];
 
    /** Size limit for IOB */
    size_t buffer_limit;
@@ -1294,6 +1314,10 @@ struct configuration_spec
    unsigned int default_server_timeout;
 #endif
 
+#ifdef FEATURE_COMPRESSION
+   int compression_level;
+#endif
+
    /** All options from the config file, HTML-formatted. */
    char *proxy_args;
 
@@ -1323,7 +1347,7 @@ struct configuration_spec
 #endif /* def FEATURE_NO_GIFS */
 
 
-/* 
+/*
  * Hardwired URLs
  */