From: Amos Jeffries Date: Tue, 20 Jan 2009 08:36:00 +0000 (+1300) Subject: Only set Keep-alive once X-Git-Tag: SQUID_3_2_0_1~1253 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=17b57873a318140e0730ef8241dbde1521fd8acb;p=thirdparty%2Fsquid.git Only set Keep-alive once Enact the TODO of same. Some re-arrangement has been done to move setting cases which need functions to be evaluated a lower priority than those which can be set purely from flags. --- diff --git a/src/client_side_reply.cc b/src/client_side_reply.cc index 6e21f2a7d7..89f28fba94 100644 --- a/src/client_side_reply.cc +++ b/src/client_side_reply.cc @@ -1354,35 +1354,30 @@ clientReplyContext::buildReplyHeader() #endif /* Check whether we should send keep-alive */ - // TODO: disable proxy_keepalive only once - - if (reply->bodySize(request->method) < 0) { - debugs(88, 3, "clientBuildReplyHeader: can't keep-alive, unknown body size" ); - request->flags.proxy_keepalive = 0; - } - - if (fdUsageHigh()&& !request->flags.must_keepalive) { - debugs(88, 3, "clientBuildReplyHeader: Not many unused FDs, can't keep-alive"); - request->flags.proxy_keepalive = 0; - } - if (!Config.onoff.error_pconns && reply->sline.status >= 400 && !request->flags.must_keepalive) { debugs(33, 3, "clientBuildReplyHeader: Error, don't keep-alive"); request->flags.proxy_keepalive = 0; } - - if (!Config.onoff.client_pconns && !request->flags.must_keepalive) + else if (!Config.onoff.client_pconns && !request->flags.must_keepalive) { + debugs(33, 2, "clientBuildReplyHeader: Connection Keep-Alive not requested by admin or client"); request->flags.proxy_keepalive = 0; - - if (request->flags.proxy_keepalive && shutting_down) { + } + else if (request->flags.proxy_keepalive && shutting_down) { debugs(88, 3, "clientBuildReplyHeader: Shutting down, don't keep-alive."); request->flags.proxy_keepalive = 0; } - - if (request->flags.connection_auth && !reply->keep_alive) { + else if (request->flags.connection_auth && !reply->keep_alive) { debugs(33, 2, "clientBuildReplyHeader: Connection oriented auth but server side non-persistent"); request->flags.proxy_keepalive = 0; } + else if (reply->bodySize(request->method) < 0) { + debugs(88, 3, "clientBuildReplyHeader: can't keep-alive, unknown body size" ); + request->flags.proxy_keepalive = 0; + } + else if (fdUsageHigh()&& !request->flags.must_keepalive) { + debugs(88, 3, "clientBuildReplyHeader: Not many unused FDs, can't keep-alive"); + request->flags.proxy_keepalive = 0; + } /* Append VIA */