#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 $
#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 */
/**
- * 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 <ctype.h> 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.
* your own code.
*/
char *str;
-
+
/** Next entry in the linked list, or NULL if no more. */
struct list_entry *next;
};
/*
* 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.
*/
#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
*/
*/
#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.
*/
* Read-only once the structure has been created.
*/
time_t lastmodified;
-
+
/**
* The full filename.
*/
/** 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.
*
{
/** What to log */
int debug;
-
+
/** Nonzero to enable multithreading. */
int multi_threaded;
/** 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;
unsigned int default_server_timeout;
#endif
+#ifdef FEATURE_COMPRESSION
+ int compression_level;
+#endif
+
/** All options from the config file, HTML-formatted. */
char *proxy_args;
#endif /* def FEATURE_NO_GIFS */
-/*
+/*
* Hardwired URLs
*/