projects
/
privoxy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add www.vpncompare.co.uk as Bronze sponsor
[privoxy.git]
/
parsers.c
diff --git
a/parsers.c
b/parsers.c
index
1b897bc
..
4517c1a
100644
(file)
--- a/
parsers.c
+++ b/
parsers.c
@@
-633,6
+633,7
@@
jb_err decompress_iob(struct client_state *csp)
if (bufsize >= csp->config->buffer_limit)
{
log_error(LOG_LEVEL_ERROR, "Buffer limit reached while decompressing iob");
if (bufsize >= csp->config->buffer_limit)
{
log_error(LOG_LEVEL_ERROR, "Buffer limit reached while decompressing iob");
+ freez(buf);
return JB_ERR_MEMORY;
}
return JB_ERR_MEMORY;
}
@@
-1216,7
+1217,7
@@
jb_err sed_https(struct client_state *csp)
csp->headers->last = csp->https_headers->last;
/*
csp->headers->last = csp->https_headers->last;
/*
- * Start with fresh tags. Already exising tags may
+ * Start with fresh tags. Already exis
t
ing tags may
* be set again. This is necessary to overrule
* URL-based patterns.
*/
* be set again. This is necessary to overrule
* URL-based patterns.
*/
@@
-1230,6
+1231,12
@@
jb_err sed_https(struct client_state *csp)
err = sed(csp, FILTER_CLIENT_HEADERS);
csp->flags |= CSP_FLAG_CLIENT_HEADER_PARSING_DONE;
err = sed(csp, FILTER_CLIENT_HEADERS);
csp->flags |= CSP_FLAG_CLIENT_HEADER_PARSING_DONE;
+ /*
+ * Update the last header which may have changed
+ * due to header additions,
+ */
+ csp->https_headers->last = csp->headers->last;
+
csp->headers->first = headers.first;
csp->headers->last = headers.last;
csp->headers->first = headers.first;
csp->headers->last = headers.last;
@@
-1951,7
+1958,7
@@
static jb_err client_connection(struct client_state *csp, char **header)
if ((csp->config->feature_flags & RUNTIME_FEATURE_CONNECTION_SHARING)
&& !(csp->flags & CSP_FLAG_SERVER_SOCKET_TAINTED))
{
if ((csp->config->feature_flags & RUNTIME_FEATURE_CONNECTION_SHARING)
&& !(csp->flags & CSP_FLAG_SERVER_SOCKET_TAINTED))
{
- if (!strcmpic(csp->http->ver, "HTTP/1.1"))
+ if (!strcmpic(csp->http->ver
sion
, "HTTP/1.1"))
{
log_error(LOG_LEVEL_HEADER,
"Removing \'%s\' to imply keep-alive.", *header);
{
log_error(LOG_LEVEL_HEADER,
"Removing \'%s\' to imply keep-alive.", *header);
@@
-3892,7
+3899,7
@@
static jb_err client_connection_header_adder(struct client_state *csp)
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
if ((csp->config->feature_flags & RUNTIME_FEATURE_CONNECTION_KEEP_ALIVE)
&& !(csp->flags & CSP_FLAG_SERVER_SOCKET_TAINTED)
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
if ((csp->config->feature_flags & RUNTIME_FEATURE_CONNECTION_KEEP_ALIVE)
&& !(csp->flags & CSP_FLAG_SERVER_SOCKET_TAINTED)
- && !strcmpic(csp->http->ver, "HTTP/1.1"))
+ && !strcmpic(csp->http->ver
sion
, "HTTP/1.1"))
{
csp->flags |= CSP_FLAG_CLIENT_CONNECTION_KEEP_ALIVE;
return JB_ERR_OK;
{
csp->flags |= CSP_FLAG_CLIENT_CONNECTION_KEEP_ALIVE;
return JB_ERR_OK;
@@
-4534,7
+4541,7
@@
jb_err get_destination_from_headers(const struct list *headers, struct http_requ
string_append(&http->cmd, " ");
string_append(&http->cmd, http->url);
string_append(&http->cmd, " ");
string_append(&http->cmd, " ");
string_append(&http->cmd, http->url);
string_append(&http->cmd, " ");
- string_append(&http->cmd, http->ver);
+ string_append(&http->cmd, http->ver
sion
);
if (http->cmd == NULL)
{
return JB_ERR_MEMORY;
if (http->cmd == NULL)
{
return JB_ERR_MEMORY;
@@
-4615,7
+4622,7
@@
jb_err get_destination_from_https_headers(const struct list *headers, struct htt
string_append(&http->cmd, " ");
string_append(&http->cmd, http->url);
string_append(&http->cmd, " ");
string_append(&http->cmd, " ");
string_append(&http->cmd, http->url);
string_append(&http->cmd, " ");
- string_append(&http->cmd, http->ver);
+ string_append(&http->cmd, http->ver
sion
);
if (http->cmd == NULL)
{
return JB_ERR_MEMORY;
if (http->cmd == NULL)
{
return JB_ERR_MEMORY;