]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Bug #1634: no Proxy-Authenticate header in 407 responses
authorAmos Jeffries <squid3@treenet.co.nz>
Fri, 14 Mar 2008 04:45:16 +0000 (17:45 +1300)
committerAmos Jeffries <squid3@treenet.co.nz>
Fri, 14 Mar 2008 04:45:16 +0000 (17:45 +1300)
This is a temporary fix partially reversing the fix for bug 1923.
It is likely to be superseded in future releases. It is intended only to
restore critical previous behaviour to squid as a short-term measure.

src/HttpHeader.cc
src/HttpHeader.h
src/client_side_reply.cc

index a836df8de5841b822cefa2dd64cf83b4aaeb4df8..d6f52fb9f733c5bb71c12f290ccfa51089d59514 100644 (file)
@@ -1806,5 +1806,7 @@ HttpHeader::removeConnectionHeaderEntries()
         }
         if (headers_deleted)
             refreshMask();
+
+        delById(HDR_CONNECTION);
     }
 }
index 14a4077a1be8f58065a62463d927d1be4f8622a6..e4eb4c4357be0ba054c3c5a488961d93ca7c459b 100644 (file)
@@ -247,15 +247,13 @@ public:
     int hasListMember(http_hdr_type id, const char *member, const char separator) const;
     int hasByNameListMember(const char *name, const char *member, const char separator) const;
     void removeHopByHopEntries();
+    void removeConnectionHeaderEntries();
     /* protected, do not use these, use interface functions instead */
     Vector<HttpHeaderEntry *> entries;         /* parsed fields in raw format */
     HttpHeaderMask mask;       /* bit set <=> entry present */
     http_hdr_owner_type owner; /* request or reply */
     int len;                   /* length when packed, not counting terminating '\0' */
 
-protected:
-    void removeConnectionHeaderEntries();
-    
 private:
     HttpHeaderEntry *findLastEntry(http_hdr_type id) const;
     // Make it non-copyable. Our destructor is a bit nasty...
index 4f2f417f0e4b8b5c70f52fad97b699364660479e..cf9e5df34ee2af5c6a355d2c3c1851ebf5e464fc 100644 (file)
@@ -1214,7 +1214,7 @@ clientReplyContext::buildReplyHeader()
     if (is_hit)
         hdr->delById(HDR_SET_COOKIE);
 
-    reply->header.removeHopByHopEntries();
+    reply->header.removeConnectionHeaderEntries();
 
     //    if (request->range)
     //      clientBuildRangeHeader(http, reply);