/*
- * $Id: auth_ntlm.cc,v 1.47 2005/04/24 14:00:52 serassio Exp $
+ * $Id: auth_ntlm.cc,v 1.48 2005/09/14 17:10:39 serassio Exp $
*
* DEBUG: section 29 NTLM Authenticator
* AUTHOR: Robert Collins
{
AuthNTLMUserRequest *ntlm_request;
+ if (!request->flags.proxy_keepalive)
+ return;
+
if (authenticate) {
/* New request, no user details */
/* pass the challenge to the client */
debug(29, 9) ("authenticateNTLMFixErrorHeader: Sending type:%d header: 'NTLM %s'\n", type, ntlm_request->authchallenge);
httpHeaderPutStrf(&rep->header, type, "NTLM %s", ntlm_request->authchallenge);
+ request->flags.must_keepalive = 1;
break;
default:
/*
- * $Id: client_side.cc,v 1.693 2005/09/12 22:26:39 wessels Exp $
+ * $Id: client_side.cc,v 1.694 2005/09/14 17:10:38 serassio Exp $
*
* DEBUG: section 33 Client-side Routines
* AUTHOR: Duane Wessels
debug(33, 3) ("clientSetKeepaliveFlag: method = %s\n",
RequestMethodStr[request->method]);
- if (!Config.onoff.client_pconns)
- request->flags.proxy_keepalive = 0;
- else {
- HttpVersion http_ver(1,0);
- /* we are HTTP/1.0, no matter what the client requests... */
+ HttpVersion http_ver(1,0);
+ /* we are HTTP/1.0, no matter what the client requests... */
- if (httpMsgIsPersistent(http_ver, req_hdr))
- request->flags.proxy_keepalive = 1;
- }
+ if (httpMsgIsPersistent(http_ver, req_hdr))
+ request->flags.proxy_keepalive = 1;
}
static int
/*
- * $Id: client_side_reply.cc,v 1.86 2005/09/09 17:31:33 wessels Exp $
+ * $Id: client_side_reply.cc,v 1.87 2005/09/14 17:10:38 serassio Exp $
*
* DEBUG: section 88 Client-side Reply Routines
* AUTHOR: Robert Collins (Originally Duane Wessels in client_side.c)
request->flags.proxy_keepalive = 0;
}
- if (fdUsageHigh()) {
+ if (fdUsageHigh()&& !request->flags.must_keepalive) {
debug(88, 3) ("clientBuildReplyHeader: Not many unused FDs, can't keep-alive\n");
request->flags.proxy_keepalive = 0;
}
+ if (!Config.onoff.client_pconns && !request->flags.must_keepalive)
+ request->flags.proxy_keepalive = 0;
+
/* Append VIA */
{
LOCAL_ARRAY(char, bbuf, MAX_URL + 32);
/*
- * $Id: structs.h,v 1.526 2005/09/03 13:46:46 serassio Exp $
+ * $Id: structs.h,v 1.527 2005/09/14 17:10:38 serassio Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
struct request_flags
{
- request_flags():range(0),nocache(0),ims(0),auth(0),cachable(0),hierarchical(0),loopdetect(0),proxy_keepalive(0),proxying(0),refresh(0),redirected(0),need_validation(0),accelerated(0),transparent(0),internal(0),internalclient(0),body_sent(0),destinationIPLookedUp_(0)
+ request_flags():range(0),nocache(0),ims(0),auth(0),cachable(0),hierarchical(0),loopdetect(0),proxy_keepalive(0),proxying(0),refresh(0),redirected(0),need_validation(0),accelerated(0),transparent(0),internal(0),internalclient(0),body_sent(0),must_keepalive(0),destinationIPLookedUp_(0)
{
#if HTTP_VIOLATIONS
nocache_hack = 0;
unsigned int body_sent:
1;
+
+unsigned int must_keepalive:
+ 1;
bool resetTCP() const;
void setResetTCP();
void clearResetTCP();