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