X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=project.h;h=8c637dd3f7752610ea18165cfe2488b451c50cb9;hb=1a81e0e172a47ea908b244a9c3068c88c3cce9c6;hp=dedd2d91b21db5f5c29c499ed328f5f07d4a2e68;hpb=786d39d3c817a20f59aa08d4ffaf407c2b27d0ec;p=privoxy.git diff --git a/project.h b/project.h index dedd2d91..8c637dd3 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.85 2006/12/31 15:03:31 fabiankeil Exp $" +#define PROJECT_H_VERSION "$Id: project.h,v 1.90 2007/02/07 10:36:16 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 - 2004 the SourceForge + * Copyright : Written by and Copyright (C) 2001 - 2007 the SourceForge * Privoxy team. http://www.privoxy.org/ * * Based on the Internet Junkbuster originally written @@ -37,6 +37,26 @@ * * Revisions : * $Log: project.h,v $ + * Revision 1.90 2007/02/07 10:36:16 fabiankeil + * Add new http_response member to save + * the reason why the response was generated. + * + * Revision 1.89 2007/01/27 13:09:16 fabiankeil + * Add new config option "templdir" to + * change the templates directory. + * + * Revision 1.88 2007/01/25 13:36:59 fabiankeil + * Add csp->error_message for failure reasons + * that should be embedded into the CGI pages. + * + * Revision 1.87 2007/01/01 19:36:37 fabiankeil + * Integrate a modified version of Wil Mahan's + * zlib patch (PR #895531). + * + * Revision 1.86 2006/12/31 17:56:37 fabiankeil + * Added config option accept-intercepted-requests + * and disabled it by default. + * * Revision 1.85 2006/12/31 15:03:31 fabiankeil * Fix gcc43 compiler warnings and a comment. * @@ -633,7 +653,7 @@ typedef int jb_err; #define JB_ERR_PARSE 4 /**< Error parsing file */ #define JB_ERR_MODIFIED 5 /**< File has been modified outside of the CGI actions editor. */ - +#define JB_ERR_COMPRESS 6 /**< Error on decompression */ /** * This macro is used to free a pointer that may be NULL. @@ -798,6 +818,21 @@ struct http_request int dcount; /**< How many parts to this domain? (length of dvec) */ }; +/** + * Reasons for generating a http_response instead of delivering + * the requested resource. Mostly ordered the way they are checked + * for in chat(). + */ +#define RSP_REASON_UNSUPPORTED 1 +#define RSP_REASON_BLOCKED 2 +#define RSP_REASON_UNTRUSTED 3 +#define RSP_REASON_REDIRECTED 4 +#define RSP_REASON_CGI_CALL 5 +#define RSP_REASON_NO_SUCH_DOMAIN 6 +#define RSP_REASON_FORWARDING_FAILED 7 +#define RSP_REASON_CONNECT_FAILED 8 +#define RSP_REASON_OUT_OF_MEMORY 9 +#define RSP_REASON_INTERNAL_ERROR 10 /** * Response generated by CGI, blocker, or error handler @@ -812,6 +847,7 @@ struct http_response size_t content_length; /**< Length of body, REQUIRED if binary body. */ int is_static; /**< Nonzero if the content will never change and should be cached by the browser (e.g. images). */ + int reason; /**< Why the response was generated in the first place. */ }; /** @@ -885,15 +921,18 @@ struct iob */ #define IOB_RESET(CSP) if(CSP->iob->buf) free(CSP->iob->buf); memset(CSP->iob, '\0', sizeof(CSP->iob)); -/* Bits for csp->content_type */ -#define CT_TEXT 1U /**< csp->content_type bitmask: - Suitable for pcrs filtering. */ -#define CT_GIF 2U /**< csp->content_type bitmask: - Suitable for GIF filtering. */ -#define CT_TABOO 4U /**< csp->content_type bitmask: - DO NOT filter, irrespective of other flags. */ -#define CT_JPEG 8U /**< csp->content_type bitmask: - Suitable for JPEG filtering. */ +/* Bits for csp->content_type bitmask: */ +#define CT_TEXT 0x0001U /**< Suitable for pcrs filtering. */ +#define CT_GIF 0x0002U /**< Suitable for GIF filtering. */ +#define CT_TABOO 0x0004U /**< DO NOT filter, irrespective of other flags. */ +#define CT_JPEG 0x0008U /**< Suitable for JPEG filtering. */ + +/* Although these are not, strictly speaking, content types + * (they are content encodings), it is simple to handle them + * as such. + */ +#define CT_GZIP 0x0010U /**< gzip-compressed data. */ +#define CT_DEFLATE 0x0020U /**< zlib-compressed data. */ /** * The mask which includes all actions. @@ -1123,6 +1162,30 @@ struct url_actions */ #define CSP_FLAG_TOGGLED_ON 0x20 +/** + * Flag for csp->flags: Set if adding the 'Connection: close' header + * for the client isn't necessary. + */ +#define CSP_FLAG_CLIENT_CONNECTION_CLOSE_SET 0x00000040UL + +/** + * Flag for csp->flags: Set if adding the 'Connection: close' header + * for the server isn't necessary. + */ +#define CSP_FLAG_SERVER_CONNECTION_CLOSE_SET 0x00000080UL + +/** + * Flag for csp->flags: Signals header parsers whether they + * are parsing server or client headers. + */ +#define CSP_FLAG_CLIENT_HEADER_PARSING_DONE 0x00000100UL + +/** + * Flag for csp->flags: Set if adding the Host: header + * isn't necessary. + */ +#define CSP_FLAG_HOST_HEADER_IS_SET 0x00000200UL + /* * Flags for use in return codes of child processes @@ -1215,6 +1278,12 @@ struct client_state #endif /* def FEATURE_TRUST */ + /** + * Failure reason to embedded in the CGI error page, + * or NULL. Currently only used for socks errors. + */ + char *error_message; + /** Next thread in linked list. Only read or modify from the main thread! */ struct client_state *next; }; @@ -1471,6 +1540,9 @@ struct configuration_spec /** The config file directory. */ const char *confdir; + /** The directory for customized CGI templates. */ + const char *templdir; + /** The log file directory. */ const char *logdir;