X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=parsers.h;h=b3a7d5c355a0672e353a2e6f9afeb75463323aa5;hp=1c2310220f8d6faa75fcc3c69fff980fc41f91b1;hb=c52eabc717dba7a4c84aa2d1edd8194a85daa9cd;hpb=f2ff4c6d90be5bfa4a8697a684f33a2fa7a8048b diff --git a/parsers.h b/parsers.h index 1c231022..b3a7d5c3 100644 --- a/parsers.h +++ b/parsers.h @@ -1,6 +1,6 @@ #ifndef PARSERS_H_INCLUDED #define PARSERS_H_INCLUDED -#define PARSERS_H_VERSION "$Id: parsers.h,v 1.14 2001/10/07 15:45:48 oes Exp $" +#define PARSERS_H_VERSION "$Id: parsers.h,v 1.20 2002/02/20 23:15:13 jongfoster Exp $" /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/parsers.h,v $ @@ -43,6 +43,26 @@ * * Revisions : * $Log: parsers.h,v $ + * Revision 1.20 2002/02/20 23:15:13 jongfoster + * Parsing functions now handle out-of-memory gracefully by returning + * an error code. + * + * Revision 1.19 2002/01/17 21:03:47 jongfoster + * Moving all our URL and URL pattern parsing code to urlmatch.c. + * + * Revision 1.18 2001/10/26 17:40:23 oes + * Introduced get_header_value() + * Removed client_accept() + * + * Revision 1.17 2001/10/13 12:47:32 joergs + * Removed client_host, added client_host_adder + * + * Revision 1.16 2001/10/07 18:50:16 oes + * Added server_content_encoding, renamed server_transfer_encoding + * + * Revision 1.15 2001/10/07 18:01:55 oes + * Changed server_http11 to server_http + * * Revision 1.14 2001/10/07 15:45:48 oes * added client_accept_encoding, client_te, client_accept_encoding_adder * @@ -119,52 +139,45 @@ extern "C" { extern const struct parsers client_patterns[]; extern const struct parsers server_patterns[]; -extern void (* const add_client_headers[])(struct client_state *); -extern void (* const add_server_headers[])(struct client_state *); +extern const add_header_func_ptr add_client_headers[]; +extern const add_header_func_ptr add_server_headers[]; -extern int flush_socket(int fd, struct client_state *csp); -extern int add_to_iob(struct client_state *csp, char *buf, int n); +extern size_t flush_socket(int fd, struct client_state *csp); +extern size_t add_to_iob(struct client_state *csp, char *buf, size_t n); extern char *get_header(struct client_state *csp); - -extern char *sed(const struct parsers pats[], void (* const more_headers[])(struct client_state *), struct client_state *csp); - -extern void free_http_request(struct http_request *http); -extern void parse_http_request(char *req, struct http_request *http, struct client_state *csp); - -extern char *crumble(const struct parsers *v, const char *s, struct client_state *csp); - -extern char *client_referrer(const struct parsers *v, const char *s, struct client_state *csp); -extern char *client_uagent(const struct parsers *v, const char *s, struct client_state *csp); -extern char *client_ua(const struct parsers *v, const char *s, struct client_state *csp); -extern char *client_from(const struct parsers *v, const char *s, struct client_state *csp); -extern char *client_send_cookie(const struct parsers *v, const char *s, struct client_state *csp); -extern char *client_x_forwarded(const struct parsers *v, const char *s, struct client_state *csp); -extern char *client_accept_encoding(const struct parsers *v, const char *s, struct client_state *csp); -extern char *client_te(const struct parsers *v, const char *s, struct client_state *csp); - -extern void client_cookie_adder(struct client_state *csp); -extern void client_xtra_adder(struct client_state *csp); -extern void client_accept_encoding_adder(struct client_state *csp); -extern void client_x_forwarded_adder(struct client_state *csp); - -extern void connection_close_adder(struct client_state *csp); - -extern char *server_set_cookie(const struct parsers *v, const char *s, struct client_state *csp); -extern char *server_content_type(const struct parsers *v, const char *s, struct client_state *csp); -extern char *server_content_length(const struct parsers *v, const char *s, struct client_state *csp); -extern char *server_content_md5(const struct parsers *v, const char *s, struct client_state *csp); -extern char *server_transfer_encoding(const struct parsers *v, const char *s, struct client_state *csp); -extern char *server_http(const struct parsers *v, const char *s, struct client_state *csp); +extern char *get_header_value(const struct list *header_list, const char *header_name); +extern char *sed(const struct parsers pats[], const add_header_func_ptr more_headers[], struct client_state *csp); + +extern jb_err crumble (struct client_state *csp, char **header); +extern jb_err client_referrer (struct client_state *csp, char **header); +extern jb_err client_uagent (struct client_state *csp, char **header); +extern jb_err client_ua (struct client_state *csp, char **header); +extern jb_err client_from (struct client_state *csp, char **header); +extern jb_err client_send_cookie (struct client_state *csp, char **header); +extern jb_err client_x_forwarded (struct client_state *csp, char **header); +extern jb_err client_accept_encoding (struct client_state *csp, char **header); +extern jb_err client_te (struct client_state *csp, char **header); + +extern jb_err client_host_adder (struct client_state *csp); +extern jb_err client_cookie_adder (struct client_state *csp); +extern jb_err client_xtra_adder (struct client_state *csp); +extern jb_err client_accept_encoding_adder(struct client_state *csp); +extern jb_err client_x_forwarded_adder (struct client_state *csp); + +extern jb_err connection_close_adder (struct client_state *csp); + +extern jb_err server_set_cookie (struct client_state *csp, char **header); +extern jb_err server_content_type (struct client_state *csp, char **header); +extern jb_err server_content_length (struct client_state *csp, char **header); +extern jb_err server_content_md5 (struct client_state *csp, char **header); +extern jb_err server_content_encoding(struct client_state *csp, char **header); +extern jb_err server_transfer_coding (struct client_state *csp, char **header); +extern jb_err server_http (struct client_state *csp, char **header); #ifdef FEATURE_FORCE_LOAD -extern char *client_host(const struct parsers *v, const char *s, struct client_state *csp); extern int strclean(const char *string, const char *substring); #endif /* def FEATURE_FORCE_LOAD */ -#if defined(FEATURE_IMAGE_DETECT_MSIE) -extern char *client_accept(const struct parsers *v, const char *s, struct client_state *csp); -#endif /* defined(FEATURE_IMAGE_DETECT_MSIE) */ - /* Revision control strings from this header and associated .c file */ extern const char parsers_rcs[]; extern const char parsers_h_rcs[];