Index: squid/src/client_side.c diff -c squid/src/client_side.c:1.561.2.23 squid/src/client_side.c:1.561.2.25 *** squid/src/client_side.c:1.561.2.23 Sun Nov 10 07:33:06 2002 --- squid/src/client_side.c Mon Nov 11 14:00:23 2002 *************** *** 1357,1362 **** --- 1357,1379 ---- httpHeaderPutInt(hdr, HDR_AGE, squid_curtime - http->entry->timestamp); } + /* Filter unproxyable authentication types */ + if (http->log_type != LOG_TCP_DENIED && + (httpHeaderHas(hdr, HDR_WWW_AUTHENTICATE) || httpHeaderHas(hdr, HDR_PROXY_AUTHENTICATE))) { + HttpHeaderPos pos = HttpHeaderInitPos; + HttpHeaderEntry *e; + while ((e = httpHeaderGetEntry(hdr, &pos))) { + if (e->id == HDR_WWW_AUTHENTICATE || e->id == HDR_PROXY_AUTHENTICATE) { + const char *value = strBuf(e->value); + if ((strncasecmp(value, "NTLM", 4) == 0 && + (value[4] == '\0' || value[4] == ' ')) + || + (strncasecmp(value, "Negotiate", 9) == 0 && + (value[9] == '\0' || value[9] == ' '))) + httpHeaderDelAt(hdr, pos); + } + } + } /* Handle authentication headers */ if (request->auth_user_request) authenticateFixHeader(rep, request->auth_user_request, request, http->flags.accel, 0);