X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=project.h;h=f7142adfd9549ea3a1156e04f73605f286ef077a;hb=430b87b899c9294875101eee7faca82880a111e1;hp=8b0e68cd0cfe2b15a692ef5ee48abb4a2c8007ba;hpb=1b2cc4af84a3bc3ba01ba913ca30012c9efa31d8;p=privoxy.git diff --git a/project.h b/project.h index 8b0e68cd..f7142adf 100644 --- 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.174 2012/03/04 11:50:32 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 */ @@ -161,19 +161,17 @@ typedef int jb_err; /** - * Fix a problem with Solaris. There should be no effect on other - * platforms. - * - * Solaris's isspace() is a macro which uses it's argument directly - * as an array index. Therefore we need to make sure that high-bit - * characters generate +ve values, and ideally we also want to make - * the argument match the declared parameter type of "int". - * + * Macro definitions for platforms where isspace() and friends + * are macros that use their argument directly as an array index + * and thus better be positive. Supposedly that's the case on + * some unspecified Solaris versions. * Note: Remember to #include if you use these macros. */ -#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 privoxy_isdigit(__X) isdigit((int)(unsigned char)(__X)) +#define privoxy_isupper(__X) isupper((int)(unsigned char)(__X)) +#define privoxy_toupper(__X) toupper((int)(unsigned char)(__X)) +#define privoxy_tolower(__X) tolower((int)(unsigned char)(__X)) +#define privoxy_isspace(__X) isspace((int)(unsigned char)(__X)) /** * Use for statically allocated buffers if you have no other choice. @@ -233,7 +231,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 +673,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 +808,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 +841,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 +1010,7 @@ struct file_list * Read-only once the structure has been created. */ time_t lastmodified; - + /** * The full filename. */ @@ -1179,6 +1194,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 +1206,7 @@ struct configuration_spec { /** What to log */ int debug; - + /** Nonzero to enable multithreading. */ int multi_threaded; @@ -1245,11 +1263,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 +1312,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 +1345,7 @@ struct configuration_spec #endif /* def FEATURE_NO_GIFS */ -/* +/* * Hardwired URLs */