1 #ifndef FILTERS_H_INCLUDED
2 #define FILTERS_H_INCLUDED
3 #define FILTERS_H_VERSION "$Id: filters.h,v 1.43 2011/09/04 11:10:56 fabiankeil Exp $"
4 /*********************************************************************
6 * File : $Source: /cvsroot/ijbswa/current/filters.h,v $
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'
15 * Copyright : Written by and Copyright (C) 2001-2010 the
16 * Privoxy team. http://www.privoxy.org/
18 * Based on the Internet Junkbuster originally written
19 * by and Copyright (C) 1997 Anonymous Coders and
20 * Junkbusters Corporation. http://www.junkbusters.com
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.
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.
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.
40 *********************************************************************/
54 extern int block_acl(const struct access_control_addr *dst, const struct client_state *csp);
55 extern int acl_addr(const char *aspec, struct access_control_addr *aca);
56 #endif /* def FEATURE_ACL */
61 extern struct http_response *block_url(struct client_state *csp);
62 extern struct http_response *redirect_url(struct client_state *csp);
64 extern struct http_response *trust_url(struct client_state *csp);
65 #endif /* def FEATURE_TRUST */
71 extern int is_untrusted_url(const struct client_state *csp);
72 #endif /* def FEATURE_TRUST */
73 #ifdef FEATURE_IMAGE_BLOCKING
74 extern int is_imageurl(const struct client_state *csp);
75 #endif /* def FEATURE_IMAGE_BLOCKING */
76 extern int connect_port_is_forbidden(const struct client_state *csp);
79 * Determining applicable actions
81 extern void get_url_actions(struct client_state *csp,
82 struct http_request *http);
83 extern void apply_url_actions(struct current_action_spec *action,
84 struct http_request *http,
85 struct url_actions *b);
87 * Determining parent proxies
89 extern const struct forward_spec *forward_url(struct client_state *csp,
90 const struct http_request *http);
93 * Content modification
95 extern char *execute_content_filters(struct client_state *csp);
96 extern char *execute_single_pcrs_command(char *subject, const char *pcrs_command, int *hits);
97 extern char *rewrite_url(char *old_url, const char *pcrs_command);
98 extern char *get_last_url(char *subject, const char *redirect_mode);
100 extern pcrs_job *compile_dynamic_pcrs_job_list(const struct client_state *csp, const struct re_filterfile_spec *b);
102 extern int content_requires_filtering(struct client_state *csp);
103 extern int content_filters_enabled(const struct current_action_spec *action);
104 extern int filters_available(const struct client_state *csp);
107 * Handling Max-Forwards:
109 extern struct http_response *direct_response(struct client_state *csp);
112 * Revision control strings from this header and associated .c file
114 extern const char filters_rcs[];
115 extern const char filters_h_rcs[];
121 #endif /* ndef FILTERS_H_INCLUDED */