(add_header_to_connection): Removed the "double_cgi" boolean, since tinyproxy now ignores all the headers after a "double CGI" situation has occurred.

(get_all_headers): Instead of dropping duplicate headers when the "double CGI" situation occurs, tinyproxy will now drop _all_ the headers from the "inner" HTTP response.
This commit is contained in:
Robert James Kaes 2002-05-29 18:11:57 +00:00
parent 5fcb8553da
commit 9b13e9bda8

View File

@ -1,4 +1,4 @@
/* $Id: reqs.c,v 1.79 2002-05-28 20:40:01 rjkaes Exp $ /* $Id: reqs.c,v 1.80 2002-05-29 18:11:57 rjkaes Exp $
* *
* This is where all the work in tinyproxy is actually done. Incoming * This is where all the work in tinyproxy is actually done. Incoming
* connections have a new child created for them. The child then * connections have a new child created for them. The child then
@ -530,11 +530,9 @@ add_xtinyproxy_header(struct conn_s *connptr)
* can be retrieved and manipulated later. * can be retrieved and manipulated later.
*/ */
static inline int static inline int
add_header_to_connection(hashmap_t hashofheaders, char *header, size_t len, add_header_to_connection(hashmap_t hashofheaders, char *header, size_t len)
bool_t double_cgi)
{ {
char *sep; char *sep;
ssize_t ret;
/* Get rid of the new line and return at the end */ /* Get rid of the new line and return at the end */
len -= chomp(header, len); len -= chomp(header, len);
@ -550,12 +548,6 @@ add_header_to_connection(hashmap_t hashofheaders, char *header, size_t len,
/* Calculate the new length of just the data */ /* Calculate the new length of just the data */
len -= sep - header - 1; len -= sep - header - 1;
if (double_cgi == TRUE) {
/* Don't allow duplicate headers */
if ((ret = hashmap_search(hashofheaders, header)) <= 0)
return ret;
}
return hashmap_insert(hashofheaders, header, sep, len); return hashmap_insert(hashofheaders, header, sep, len);
} }
@ -605,7 +597,8 @@ get_all_headers(int fd, hashmap_t hashofheaders)
continue; continue;
} }
if (add_header_to_connection(hashofheaders, header, len, double_cgi) < 0) { if (!double_cgi
&& add_header_to_connection(hashofheaders, header, len) < 0) {
safefree(header); safefree(header);
return -1; return -1;
} }