Rebuild HTML docs
[privoxy.git] / filters.h
1 #ifndef FILTERS_H_INCLUDED
2 #define FILTERS_H_INCLUDED
3 #define FILTERS_H_VERSION "$Id: filters.h,v 1.47 2016/03/17 10:40:53 fabiankeil Exp $"
4 /*********************************************************************
5  *
6  * File        :  $Source: /cvsroot/ijbswa/current/filters.h,v $
7  *
8  * Purpose     :  Declares functions to parse/crunch headers and pages.
9  *                Functions declared include:
10  *                   `acl_addr', `add_stats', `block_acl', `block_imageurl',
11  *                   `block_url', `url_actions', `filter_popups', `forward_url'
12  *                   `ij_untrusted_url', `intercept_url', `re_process_buffer',
13  *                   `show_proxy_args', and `trust_url'
14  *
15  * Copyright   :  Written by and Copyright (C) 2001-2010 the
16  *                Privoxy team. http://www.privoxy.org/
17  *
18  *                Based on the Internet Junkbuster originally written
19  *                by and Copyright (C) 1997 Anonymous Coders and
20  *                Junkbusters Corporation.  http://www.junkbusters.com
21  *
22  *                This program is free software; you can redistribute it
23  *                and/or modify it under the terms of the GNU General
24  *                Public License as published by the Free Software
25  *                Foundation; either version 2 of the License, or (at
26  *                your option) any later version.
27  *
28  *                This program is distributed in the hope that it will
29  *                be useful, but WITHOUT ANY WARRANTY; without even the
30  *                implied warranty of MERCHANTABILITY or FITNESS FOR A
31  *                PARTICULAR PURPOSE.  See the GNU General Public
32  *                License for more details.
33  *
34  *                The GNU General Public License should be included with
35  *                this file.  If not, you can view it at
36  *                http://www.gnu.org/copyleft/gpl.html
37  *                or write to the Free Software Foundation, Inc., 59
38  *                Temple Place - Suite 330, Boston, MA  02111-1307, USA.
39  *
40  *********************************************************************/
41
42
43 #include "project.h"
44
45 /*
46  * ACL checking
47  */
48 #ifdef FEATURE_ACL
49 extern int block_acl(const struct access_control_addr *dst, const struct client_state *csp);
50 extern int acl_addr(const char *aspec, struct access_control_addr *aca);
51 #endif /* def FEATURE_ACL */
52
53 /*
54  * Interceptors
55  */
56 extern struct http_response *block_url(struct client_state *csp);
57 extern struct http_response *redirect_url(struct client_state *csp);
58 #ifdef FEATURE_TRUST
59 extern struct http_response *trust_url(struct client_state *csp);
60 #endif /* def FEATURE_TRUST */
61
62 /*
63  * Request inspectors
64  */
65 #ifdef FEATURE_TRUST
66 extern int is_untrusted_url(const struct client_state *csp);
67 #endif /* def FEATURE_TRUST */
68 #ifdef FEATURE_IMAGE_BLOCKING
69 extern int is_imageurl(const struct client_state *csp);
70 #endif /* def FEATURE_IMAGE_BLOCKING */
71 extern int connect_port_is_forbidden(const struct client_state *csp);
72
73 /*
74  * Determining applicable actions
75  */
76 extern void get_url_actions(struct client_state *csp,
77                             struct http_request *http);
78
79 extern struct re_filterfile_spec *get_filter(const struct client_state *csp,
80                                              const char *requested_name,
81                                              enum filter_type requested_type);
82
83 /*
84  * Determining parent proxies
85  */
86 extern const struct forward_spec *forward_url(struct client_state *csp,
87                                               const struct http_request *http);
88
89 /*
90  * Content modification
91  */
92 extern char *execute_content_filters(struct client_state *csp);
93 extern char *execute_single_pcrs_command(char *subject, const char *pcrs_command, int *hits);
94 extern char *rewrite_url(char *old_url, const char *pcrs_command);
95 extern char *get_last_url(char *subject, const char *redirect_mode);
96
97 extern pcrs_job *compile_dynamic_pcrs_job_list(const struct client_state *csp, const struct re_filterfile_spec *b);
98
99 extern int content_requires_filtering(struct client_state *csp);
100 extern int content_filters_enabled(const struct current_action_spec *action);
101 extern int filters_available(const struct client_state *csp);
102
103 /*
104  * Handling Max-Forwards:
105  */
106 extern struct http_response *direct_response(struct client_state *csp);
107
108 /*
109  * Revision control strings from this header and associated .c file
110  */
111 extern const char filters_rcs[];
112 extern const char filters_h_rcs[];
113
114 #ifdef FUZZ
115 extern char *gif_deanimate_response(struct client_state *csp);
116 extern jb_err remove_chunked_transfer_coding(char *buffer, size_t *size);
117 #endif
118
119 #endif /* ndef FILTERS_H_INCLUDED */
120
121 /*
122   Local Variables:
123   tab-width: 3
124   end:
125 */