Go to the source code of this file.
Data Structures | |
struct | action_spec |
This structure contains a set of changes to actions. More... | |
struct | cgi_dispatcher |
List of available CGI functions. More... | |
struct | client_state |
The state of a Privoxy processing thread. More... | |
struct | configuration_spec |
Data loaded from the configuration file. More... | |
struct | current_action_spec |
This structure contains a list of actions to apply to a URL. More... | |
struct | file_list |
A data file used by Privoxy. More... | |
struct | forward_spec |
How to forward a connection to a parent proxy. More... | |
struct | http_request |
A HTTP request. More... | |
struct | http_response |
Response generated by CGI, blocker, or error handler. More... | |
struct | iob |
An I/O buffer. More... | |
struct | list |
A header for a linked list of strings. More... | |
struct | list_entry |
Entry in a linked list of strings. More... | |
struct | map |
A map from a string to another string. More... | |
struct | map_entry |
An entry in a map. More... | |
struct | parsers |
List of functions to run on a list of headers. More... | |
struct | re_filterfile_spec |
This struct represents one filter (one block) from the re_filterfile. More... | |
struct | url_actions |
This structure is used to store the actions list. More... | |
struct | url_spec |
A URL pattern. More... | |
Defines | |
#define | PROJECT_H_VERSION "$Id: project.h,v 2.1 2002/06/04 16:35:56 jongfoster Exp $" |
#define | JB_INVALID_SOCKET (-1) |
#define | JB_ERR_OK 0 |
#define | JB_ERR_MEMORY 1 |
#define | JB_ERR_CGI_PARAMS 2 |
#define | JB_ERR_FILE 3 |
#define | JB_ERR_PARSE 4 |
#define | JB_ERR_MODIFIED 5 |
#define | freez(X) { if(X) { free((void*)X); X = NULL ; } } |
#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 | BUFFER_SIZE 5000 |
#define | CGI_PARAM_LEN_MAX 500 |
#define | HOSTENT_BUFFER_SIZE 1024 |
#define | FOREVER 1 |
#define | HADDR_DEFAULT "127.0.0.1" |
#define | HADDR_PORT 8118 |
#define | URL_SPEC_INITIALIZER { NULL, NULL, NULL, 0, 0, 0, NULL, 0, NULL } |
#define | ANCHOR_LEFT 1 |
#define | ANCHOR_RIGHT 2 |
#define | IOB_PEEK(CSP) ((CSP->iob->cur > CSP->iob->eod) ? (CSP->iob->eod - CSP->iob->cur) : 0) |
#define | IOB_RESET(CSP) if(CSP->iob->buf) free(CSP->iob->buf); memset(CSP->iob, '\0', sizeof(CSP->iob)); |
#define | CT_TEXT 1 |
#define | CT_GIF 2 |
#define | CT_TABOO 4 |
#define | ACTION_MASK_ALL (~0UL) |
#define | ACTION_MOST_COMPATIBLE 0x00000000UL |
#define | ACTION_BLOCK 0x00000001UL |
#define | ACTION_DEANIMATE 0x00000002UL |
#define | ACTION_DOWNGRADE 0x00000004UL |
#define | ACTION_FAST_REDIRECTS 0x00000008UL |
#define | ACTION_HIDE_FORWARDED 0x00000010UL |
#define | ACTION_HIDE_FROM 0x00000020UL |
#define | ACTION_HIDE_REFERER 0x00000040UL |
#define | ACTION_HIDE_USER_AGENT 0x00000080UL |
#define | ACTION_IMAGE 0x00000100UL |
#define | ACTION_IMAGE_BLOCKER 0x00000200UL |
#define | ACTION_NO_COMPRESSION 0x00000400UL |
#define | ACTION_NO_COOKIE_KEEP 0x00000800UL |
#define | ACTION_NO_COOKIE_READ 0x00001000UL |
#define | ACTION_NO_COOKIE_SET 0x00002000UL |
#define | ACTION_NO_POPUPS 0x00004000UL |
#define | ACTION_VANILLA_WAFER 0x00008000UL |
#define | ACTION_LIMIT_CONNECT 0x00010000UL |
#define | ACTION_STRING_DEANIMATE 0 |
#define | ACTION_STRING_FROM 1 |
#define | ACTION_STRING_IMAGE_BLOCKER 2 |
#define | ACTION_STRING_REFERER 3 |
#define | ACTION_STRING_USER_AGENT 4 |
#define | ACTION_STRING_LIMIT_CONNECT 5 |
#define | ACTION_STRING_COUNT 6 |
#define | ACTION_MULTI_ADD_HEADER 0 |
#define | ACTION_MULTI_WAFER 1 |
#define | ACTION_MULTI_FILTER 2 |
#define | ACTION_MULTI_COUNT 3 |
#define | CSP_FLAG_ACTIVE 0x01 |
#define | CSP_FLAG_CHUNKED 0x02 |
#define | CSP_FLAG_FORCED 0x04 |
#define | CSP_FLAG_MODIFIED 0x08 |
#define | CSP_FLAG_REJECTED 0x10 |
#define | CSP_FLAG_TOGGLED_ON 0x20 |
#define | MAX_ACTION_FILES 10 |
#define | SOCKS_NONE 0 |
#define | SOCKS_4 40 |
#define | SOCKS_4A 41 |
#define | FORWARD_SPEC_INITIALIZER { { URL_SPEC_INITIALIZER }, 0, NULL, 0, NULL, 0, NULL } |
#define | NLOADERS 8 |
#define | RUNTIME_FEATURE_CGI_EDIT_ACTIONS 1 |
#define | RUNTIME_FEATURE_CGI_TOGGLE 2 |
#define | SZ(X) (sizeof(X) / sizeof(*X)) |
#define | BUILTIN_IMAGE_MIMETYPE "image/gif" |
#define | HOME_PAGE_URL "http://www.privoxy.org/" |
#define | USER_MANUAL_URL HOME_PAGE_URL "/" VERSION "/user-manual/" |
#define | ACTIONS_HELP_PREFIX "actions-file.html#" |
#define | CONFIG_HELP_PREFIX "config.html#" |
#define | CGI_SITE_1_HOST "p.p" |
#define | CGI_SITE_2_HOST "config.privoxy.org" |
#define | CGI_SITE_2_PATH "" |
#define | CGI_PREFIX "http://" CGI_SITE_2_HOST CGI_SITE_2_PATH "/" |
Typedefs | |
typedef int | jb_socket |
typedef int | jb_err |
typedef jb_err(* | add_header_func_ptr )(struct client_state *) |
typedef jb_err(* | parser_func_ptr )(struct client_state *, char **) |
Does not define any variables or functions (though it does declare some macros).
Revision 2.0 2002/06/04 14:34:21 jongfoster Moving source files to src/
Revision 1.72 2002/05/14 21:35:49 oes Split HELP_LINK_PREFIX into ACTIONS_HELP_PREFIX and CONFIG_HELP_PREFIX because of split in user-manual
Revision 1.71 2002/05/12 21:39:36 jongfoster
Revision 1.69 2002/05/08 16:00:16 oes Added size member to struct iob, so it can be alloced larger than needed.
Revision 1.68 2002/04/26 12:56:00 oes Killed REDIRECT_URL, added USER_MANUAL_URL and HELP_LINK_PREFIX
Revision 1.67 2002/04/24 02:12:43 oes
Revision 1.65 2002/04/04 00:36:36 gliptak always use pcre for matching
Revision 1.64 2002/04/03 22:28:03 gliptak Removed references to gnu_regex
Revision 1.63 2002/03/31 17:19:00 jongfoster Win32 only: Enabling STRICT to fix a VC++ compile warning.
Revision 1.62 2002/03/26 22:48:49 swa new homepage url
Revision 1.61 2002/03/26 22:29:55 swa we have a new homepage!
Revision 1.60 2002/03/24 15:52:17 jongfoster Changing CGI URL prefixes for new name
Revision 1.59 2002/03/24 15:23:33 jongfoster Name changes
Revision 1.58 2002/03/24 13:25:43 swa name change related issues
Revision 1.57 2002/03/16 20:28:34 oes Added descriptions to the filters so users will know what they select in the cgi editor
Revision 1.56 2002/03/13 20:27:30 oes Fixing bug with CT_TABOO
Revision 1.55 2002/03/12 01:42:50 oes Introduced modular filters
Revision 1.54 2002/03/09 20:03:52 jongfoster
Revision 1.52 2002/03/07 03:46:17 oes Fixed compiler warnings
Revision 1.51 2002/03/05 04:52:42 oes Deleted non-errlog debugging code
Revision 1.50 2002/03/04 19:32:07 oes Changed default port to 8118
Revision 1.49 2002/03/04 18:28:55 oes Deleted PID_FILE_NAME
Revision 1.48 2002/03/03 14:50:40 oes Fixed CLF logging: Added ocmd member for client's request to struct http_request
Revision 1.47 2002/02/20 23:15:13 jongfoster Parsing functions now handle out-of-memory gracefully by returning an error code.
Revision 1.46 2002/01/17 21:06:09 jongfoster Now defining the URLs of the config interface
Minor changes to struct http_request and struct url_spec due to standardizing that struct http_request is used to represent a URL, and struct url_spec is used to represent a URL pattern. (Before, URLs were represented as seperate variables and a partially-filled-in url_spec).
Revision 1.45 2002/01/09 14:33:27 oes Added HOSTENT_BUFFER_SIZE
Revision 1.44 2001/12/30 14:07:32 steudten
Revision 1.42 2001/11/05 21:42:41 steudten Include DBG() macro.
Revision 1.41 2001/10/28 19:12:06 jongfoster Adding ijb_toupper()
Revision 1.40 2001/10/26 17:40:47 oes Moved ijb_isspace and ijb_tolower to project.h Removed http->user_agent, csp->referrer and csp->accept_types
Revision 1.39 2001/10/25 03:45:02 david__schmidt Adding a (void*) cast to freez() because Visual Age C++ won't expand the macro when called with a cast; so moving the cast to the macro def'n seems to both eliminate compiler warnings (on darwin and OS/2, anyway) and doesn't make macro expansion complain. Hope this works for everyone else too...
Revision 1.38 2001/10/23 21:19:04 jongfoster New error-handling support: jb_err type and JB_ERR_xxx constants CGI functions now return a jb_err, and their parameters map is const. Support for RUNTIME_FEATUREs to enable/disable config editor Adding a few comments
Revision 1.37 2001/10/14 22:14:01 jongfoster Removing name_length field from struct cgi_dispatcher, as this is now calculated at runtime from the "name" field.
Revision 1.36 2001/10/10 16:45:15 oes Added LIMIT_CONNECT action and string Fixed HTTP message line termination Added CFORBIDDEN HTTP message
Revision 1.35 2001/10/07 18:06:43 oes Added status member to struct http_request
Revision 1.34 2001/10/07 15:45:25 oes Added url member to struct http_request and commented all members
Added CT_TABOO
Added ACTION_DOWNGRADE and ACTION_NO_COMPRESSION
Replaced struct client_state members rejected, force, active and toggled_on with "flags" bitmap.
Added CSP_FLAG_MODIFIED and CSP_FLAG_CHUNKED
Added buffer_limit to struct configuration_spec
Revision 1.33 2001/09/20 13:30:08 steudten
Make freez() more secure in case of: if (exp) { free(z) ; a=*z } Last case will set z to NULL in free(z) and thats bad..
Revision 1.32 2001/09/16 23:02:51 jongfoster Fixing warning
Revision 1.31 2001/09/16 13:20:29 jongfoster Rewrite of list library. Now has seperate header and list_entry structures. Also added a large sprinking of assert()s to the list code.
Revision 1.30 2001/09/13 23:52:00 jongfoster Support for both static and dynamically generated CGI pages
Revision 1.29 2001/09/13 23:29:43 jongfoster Defining FORWARD_SPEC_INITIALIZER
Revision 1.28 2001/09/13 23:05:50 jongfoster Changing the string paramater to the header parsers a "const".
Revision 1.27 2001/08/05 16:06:20 jongfoster Modifiying "struct map" so that there are now separate header and "map_entry" structures. This means that functions which modify a map no longer need to return a pointer to the modified map. Also, it no longer reverses the order of the entries (which may be important with some advanced template substitutions).
Revision 1.26 2001/07/30 22:08:36 jongfoster Tidying up defines:
Revision 1.24 2001/07/25 17:20:27 oes Introduced http->user_agent
Revision 1.23 2001/07/18 12:32:23 oes
Revision 1.22 2001/07/15 17:51:41 jongfoster Renaming define STATIC to STATIC_PCRERevision 1.21 2001/07/13 14:03:19 oes
Revision 1.19 2001/06/29 13:33:36 oes
Revision 1.17 2001/06/07 23:15:09 jongfoster Merging ACL and forward files into config file. Moving struct gateway members into struct forward_spec Removing config->proxy_args_gateways Cosmetic: Adding a few comments
Revision 1.16 2001/06/04 18:31:58 swa files are now prefixed with either `confdir' or `logdir'. `make redhat-dist' replaces both entries confdir and logdir with redhat values
Revision 1.15 2001/06/04 11:28:53 swa redirect did not work due to missing /
Revision 1.14 2001/06/03 11:03:48 oes Added struct map, added struct http_response, changed struct interceptors to struct cgi_dispatcher, moved HTML stuff to cgi.h
Revision 1.13 2001/06/01 20:05:36 jongfoster Support for +image-blocker{}: added ACTION_IMAGE_BLOCKER constant, and removed csp->tinygif.
Revision 1.12 2001/06/01 18:49:17 jongfoster Replaced "list_share" with "list" - the tiny memory gain was not worth the extra complexity.
Revision 1.11 2001/06/01 10:32:47 oes Added constants for anchoring selection bitmap
Revision 1.10 2001/05/31 21:33:53 jongfoster Changes for new actions file, replacing permissionsfile and parts of the config file. Also added support for list_shared.
Revision 1.9 2001/05/31 17:32:31 oes
Revision 1.7 2001/05/29 09:50:24 jongfoster Unified blocklist/imagelist/actionslist. File format is still under discussion, but the internal changes are (mostly) done.
Also modified interceptor behaviour:
Revision 1.4 2001/05/22 18:46:04 oes
|
Action bitmap: Block the request.
|
|
Action bitmap: Deanimate if it's a GIF.
|
|
Action bitmap: Downgrade HTTP/1.1 to 1.0.
|
|
Action bitmap: Fast redirects.
|
|
Action bitmap: Remove existing "Forwarded" header, and do not add another.
|
|
Action bitmap: Hide "From" header.
|
|
Action bitmap: Hide "Referer" header. (sic - follow HTTP, not English). |
|
Action bitmap: Hide "User-Agent" and similar headers.
|
|
Action bitmap: This is an image.
|
|
Action bitmap: Sets the image blocker.
|
|
Action bitmap: Limit CONNECT requests to safe ports.
|
|
The mask which includes all actions.
|
|
The most compatible set of actions - i.e. none. |
|
Index into current_action_spec::multi[] for headers to add.
|
|
Number of multi-string actions.
|
|
Index into current_action_spec::multi[] for filters to apply.
|
|
Index into current_action_spec::multi[] for headers to add.
|
|
Action bitmap: Prevent compression.
|
|
Action bitmap: Change cookies to session only cookies.
|
|
Action bitmap: Block rending cookies.
|
|
Action bitmap: Block setting cookies.
|
|
Action bitmap: Filter out popups.
|
|
Number of string actions.
|
|
Action string index: How to deanimate GIFs.
|
|
Action string index: Replacement for "From:" header.
|
|
Action string index: How to block images.
|
|
Action string index: Legal CONNECT ports.
|
|
Action string index: Replacement for "Referer:" header.
|
|
Action string index: Replacement for "User-Agent:" header.
|
|
Action bitmap: Send a vanilla wafer.
|
|
Prefix for actions help links (append to USER_MANUAL_URL).
|
|
Constant for host part matching in URLs. If set, indicates that the start of the pattern must match the start of the URL. E.g. this is not set for the pattern ".example.com", so that it will match both "example.com" and "www.example.com". It is set for the pattern "example.com", which makes it match "example.com" only, not "www.example.com". |
|
Constant for host part matching in URLs. If set, indicates that the end of the pattern must match the end of the URL. E.g. this is not set for the pattern "ad.", so that it will match any host called "ad", irrespective of how many subdomains are in the fully-qualified domain name. |
|
Use for statically allocated buffers if you have no other choice. Remember to check the length of what you write into the buffer
|
|
Max length of CGI parameters (arbitrary limit).
|
|
The prefix for CGI pages. Written out in generated HTML. INCLUDES the trailing slash. |
|
Prefix for config option help links (append to USER_MANUAL_URL).
|
|
Flag for csp->flags: Set if this client is processing data. Cleared when the thread associated with this structure dies. |
|
Flag for csp->flags: Set if the server's reply is in "chunked" transfer encoding.
|
|
Flag for csp->flags: Set if this request was enforced, although it would normally have been blocked.
|
|
Flag for csp->flags: Set if any modification to the body was done.
|
|
Flag for csp->flags: Set if request was blocked.
|
|
Flag for csp->flags: Set if we are toggled on (FEATURE_TOGGLE).
|
|
csp->content_type bitmask: Suitable for GIF filtering.
|
|
csp->content_type bitmask: DO NOT filter, irrespective of other flags.
|
|
csp->content_type bitmask: Suitable for pcrs filtering.
|
|
Do not use. Originally this was so that you can say "while (FOREVER) { ...do something... }". However, this gives a warning with some compilers (e.g. VC++). Instead, use "for (;;) { ...do something... }". |
|
Initializer for a static struct forward_spec.
|
|
This macro is used to free a pointer that may be NULL. It also sets the variable to NULL after it's been freed. The paramater should be a simple variable without side effects. |
|
Default IP address to listen on, as a string. Set to "127.0.0.1". |
|
Default port to listen on, as a number. Set to 8118. |
|
URL for the Privoxy home page.
|
|
Buffer size for capturing struct hostent data in the gethostby(name|addr)_r library calls. Since we don't loop over gethostbyname_r, the buffer must be sufficient to accomodate multiple IN A RRs, as used in DNS round robin load balancing. W3C's wwwlib uses 1K, so that should be good enough for us, too. |
|
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". Note: Remember to include <ctype.h> if you use these macros. |
|
Return the number of bytes in the I/O buffer associated with the passed client_state pointer. May be zero. |
|
Remove any data in the I/O buffer associated with the passed client_state pointer.
|
|
Missing or corrupt CGI parameters.
|
|
Error opening, reading or writing a file.
|
|
Out of memory.
|
|
File has been modified outside of the CGI actions editor.
|
|
Success, no error.
|
|
Error parsing file.
|
|
The error value used for variables of type jb_socket. On UNIX this is -1, however Microsoft decided to make socket handles unsigned, so they use a different value. |
|
Maximum number of actions files. This limit is arbitrary - it's just used to size an array. |
|
Maximum number of loaders (actions, re_filter, ...).
|
|
Version string.
|
|
configuration_spec::feature_flags: CGI actions editor.
|
|
configuration_spec::feature_flags: Web-based toggle.
|
|
original SOCKS 4 protocol.
|
|
as modified for hosts w/o external DNS.
|
|
Don't use a SOCKS server.
|
|
Calculates the number of elements in an array, using sizeof.
|
|
If you declare a static url_spec, this is the value to initialize it to zero.
|
|
URL for the Privoxy user manual.
|
|
A function to add a header.
|
|
A standard error code. This should be JB_ERR_OK or one of the JB_ERR_xxx series of errors. |
|
The type used by sockets. On UNIX it's an int. Microsoft decided to make it an unsigned. |
|
A function to process a header.
|