X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=jcc.c;h=d637017ec5ea62e4062a2e74eab1af28de8e3058;hb=44225e7688c759c05dff02c5b85162b7dabc8e31;hp=a9da886e2f5e47138d1613af911e70dea801e79f;hpb=fbcfc6c6616fafb551c7cd13d39c42d37854c655;p=privoxy.git diff --git a/jcc.c b/jcc.c index a9da886e..d637017e 100644 --- a/jcc.c +++ b/jcc.c @@ -1,4 +1,4 @@ -const char jcc_rcs[] = "$Id: jcc.c,v 1.269 2009/07/13 17:08:41 fabiankeil Exp $"; +const char jcc_rcs[] = "$Id: jcc.c,v 1.271 2009/07/14 17:50:34 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/jcc.c,v $ @@ -1460,12 +1460,16 @@ static jb_err parse_client_request(struct client_state *csp) if (csp->iob->cur[0] != '\0') { csp->flags |= CSP_FLAG_SERVER_SOCKET_TAINTED; - if (!strcmpic(csp->http->gpc, "POST")) + if (strcmpic(csp->http->gpc, "GET") + && strcmpic(csp->http->gpc, "HEAD") + && strcmpic(csp->http->gpc, "TRACE") + && strcmpic(csp->http->gpc, "OPTIONS") + && strcmpic(csp->http->gpc, "DELETE")) { /* XXX: this is an incomplete hack */ csp->flags &= ~CSP_FLAG_CLIENT_REQUEST_COMPLETELY_READ; log_error(LOG_LEVEL_CONNECT, - "POST request detected. The connection will not be kept alive."); + "There might be a request body. The connection will not be kept alive."); } else { @@ -2350,6 +2354,14 @@ static void serve(struct client_state *csp) { chat(csp); + if ((csp->flags & CSP_FLAG_SERVER_CONNECTION_KEEP_ALIVE) + && !(csp->flags & CSP_FLAG_SERVER_KEEP_ALIVE_TIMEOUT_SET)) + { + log_error(LOG_LEVEL_CONNECT, "The server didn't specify how long " + "the connection will stay open. Assume it's only a second."); + csp->server_connection.keep_alive_timeout = 1; + } + continue_chatting = (csp->config->feature_flags & RUNTIME_FEATURE_CONNECTION_KEEP_ALIVE) && (csp->flags & CSP_FLAG_SERVER_CONNECTION_KEEP_ALIVE)