1 #ifndef PARSERS_H_INCLUDED
2 #define PARSERS_H_INCLUDED
3 #define PARSERS_H_VERSION "$Id: parsers.h,v 1.55 2012/12/07 12:43:55 fabiankeil Exp $"
4 /*********************************************************************
6 * File : $Source: /cvsroot/ijbswa/current/parsers.h,v $
8 * Purpose : Declares functions to parse/crunch headers and pages.
9 * Functions declared include:
10 * `add_to_iob', `client_cookie_adder', `client_from',
11 * `client_referrer', `client_send_cookie', `client_ua',
12 * `client_uagent', `client_x_forwarded',
13 * `client_x_forwarded_adder', `client_xtra_adder',
14 * `content_type', `crumble', `destroy_list', `enlist',
15 * `flush_socket', `free_http_request', `get_header',
16 * `list_to_text', `parse_http_request', `sed',
17 * and `server_set_cookie'.
19 * Copyright : Written by and Copyright (C) 2001 the SourceForge
20 * Privoxy team. http://www.privoxy.org/
22 * Based on the Internet Junkbuster originally written
23 * by and Copyright (C) 1997 Anonymous Coders and
24 * Junkbusters Corporation. http://www.junkbusters.com
26 * This program is free software; you can redistribute it
27 * and/or modify it under the terms of the GNU General
28 * Public License as published by the Free Software
29 * Foundation; either version 2 of the License, or (at
30 * your option) any later version.
32 * This program is distributed in the hope that it will
33 * be useful, but WITHOUT ANY WARRANTY; without even the
34 * implied warranty of MERCHANTABILITY or FITNESS FOR A
35 * PARTICULAR PURPOSE. See the GNU General Public
36 * License for more details.
38 * The GNU General Public License should be included with
39 * this file. If not, you can view it at
40 * http://www.gnu.org/copyleft/gpl.html
41 * or write to the Free Software Foundation, Inc., 59
42 * Temple Place - Suite 330, Boston, MA 02111-1307, USA.
44 *********************************************************************/
49 /* Used for sed()'s second argument. */
50 #define FILTER_CLIENT_HEADERS 0
51 #define FILTER_SERVER_HEADERS 1
53 extern long flush_socket(jb_socket fd, struct iob *iob);
54 extern jb_err add_to_iob(struct iob *iob, const size_t buffer_limit, char *src, long n);
55 extern void clear_iob(struct iob *iob);
56 extern jb_err decompress_iob(struct client_state *csp);
57 extern char *get_header(struct iob *iob);
58 extern char *get_header_value(const struct list *header_list, const char *header_name);
59 extern jb_err sed(struct client_state *csp, int filter_server_headers);
60 extern jb_err update_server_headers(struct client_state *csp);
61 extern void get_http_time(int time_offset, char *buf, size_t buffer_size);
62 extern jb_err get_destination_from_headers(const struct list *headers, struct http_request *http);
63 extern unsigned long long get_expected_content_length(struct list *headers);
64 extern jb_err client_transfer_encoding(struct client_state *csp, char **header);
66 #ifdef FEATURE_FORCE_LOAD
67 extern int strclean(char *string, const char *substring);
68 #endif /* def FEATURE_FORCE_LOAD */
70 /* Revision control strings from this header and associated .c file */
71 extern const char parsers_rcs[];
72 extern const char parsers_h_rcs[];
74 #endif /* ndef PARSERS_H_INCLUDED */