X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=jcc.c;h=e11581888f74da736975b3c1cb202ab9d720af85;hb=a030429136866f3513740ab81ca5535d2c1cb576;hp=b01736d01d9b9751272f9367fdd58e566fd7ccf5;hpb=75ac7b1cb0f8608b9ea6124ea2bd2ba7eb16a7ec;p=privoxy.git diff --git a/jcc.c b/jcc.c index b01736d0..e1158188 100644 --- a/jcc.c +++ b/jcc.c @@ -1,4 +1,4 @@ -const char jcc_rcs[] = "$Id: jcc.c,v 1.327 2010/09/03 17:40:37 fabiankeil Exp $"; +const char jcc_rcs[] = "$Id: jcc.c,v 1.330 2010/09/14 07:16:07 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/jcc.c,v $ @@ -1521,9 +1521,7 @@ static void chat(struct client_state *csp) const struct forward_spec *fwd; struct http_request *http; long len = 0; /* for buffer sizes (and negative error codes) */ - - /* Function that does the content filtering for the current request */ - filter_function_ptr content_filter = NULL; + int buffer_and_filter_content = 0; /* Skeleton for HTTP response, if we should intercept the request */ struct http_response *rsp; @@ -2049,7 +2047,7 @@ static void chat(struct client_state *csp) * now is the time to apply content modification * and send the result to the client. */ - if (content_filter) + if (buffer_and_filter_content) { p = execute_content_filters(csp); /* @@ -2115,7 +2113,7 @@ static void chat(struct client_state *csp) */ if (server_body || http->ssl) { - if (content_filter) + if (buffer_and_filter_content) { /* * If there is no memory left for buffering the content, or the buffer limit @@ -2163,7 +2161,7 @@ static void chat(struct client_state *csp) */ byte_count = (unsigned long long)flushed; freez(hdr); - content_filter = NULL; + buffer_and_filter_content = 0; server_body = 1; } } @@ -2330,12 +2328,12 @@ static void chat(struct client_state *csp) if (!http->ssl) /* We talk plaintext */ { - content_filter = get_filter_function(csp); + buffer_and_filter_content = content_requires_filtering(csp); } /* * Only write if we're not buffering for content modification */ - if (!content_filter) + if (!buffer_and_filter_content) { /* * Write the server's (modified) header to @@ -2556,7 +2554,7 @@ static void serve(struct client_state *csp) { time_t time_open = time(NULL) - csp->server_connection.timestamp; - if (csp->server_connection.keep_alive_timeout < time_open + latency) + if (csp->server_connection.keep_alive_timeout < time_open - (time_t)latency) { break; }