]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Cleanup: polish header masks and fix incorrect entries
authorAmos Jeffries <squid3@treenet.co.nz>
Wed, 30 Jul 2014 15:03:51 +0000 (08:03 -0700)
committerAmos Jeffries <squid3@treenet.co.nz>
Wed, 30 Jul 2014 15:03:51 +0000 (08:03 -0700)
src/HttpHeader.cc

index b43a11660b33f4f08143a68ad1238c8d716bb95b..d8d1aaebcea25950d33a561e1b1cf6f8726d4b0e 100644 (file)
@@ -188,16 +188,21 @@ http_hdr_type &operator++ (http_hdr_type &aHeader)
 static HttpHeaderMask ListHeadersMask; /* set run-time using  ListHeadersArr */
 static http_hdr_type ListHeadersArr[] = {
     HDR_ACCEPT,
-    HDR_ACCEPT_CHARSET, HDR_ACCEPT_ENCODING, HDR_ACCEPT_LANGUAGE,
-    HDR_ACCEPT_RANGES, HDR_ALLOW,
+    HDR_ACCEPT_CHARSET,
+    HDR_ACCEPT_ENCODING,
+    HDR_ACCEPT_LANGUAGE,
+    HDR_ACCEPT_RANGES,
+    HDR_ALLOW,
     HDR_CACHE_CONTROL,
     HDR_CONTENT_ENCODING,
     HDR_CONTENT_LANGUAGE,
     HDR_CONNECTION,
     HDR_EXPECT,
-    HDR_IF_MATCH, HDR_IF_NONE_MATCH,
+    HDR_IF_MATCH,
+    HDR_IF_NONE_MATCH,
     HDR_KEY,
-    HDR_LINK, HDR_PRAGMA,
+    HDR_LINK,
+    HDR_PRAGMA,
     HDR_PROXY_CONNECTION,
     HDR_PROXY_SUPPORT,
     HDR_TRANSFER_ENCODING,
@@ -223,7 +228,14 @@ static http_hdr_type ListHeadersArr[] = {
 
 /* general-headers */
 static http_hdr_type GeneralHeadersArr[] = {
-    HDR_CACHE_CONTROL, HDR_CONNECTION, HDR_DATE, HDR_PRAGMA,
+    HDR_CACHE_CONTROL,
+    HDR_CONNECTION,
+    HDR_DATE,
+    HDR_FORWARDED,
+    HDR_X_FORWARDED_FOR,
+    HDR_MIME_VERSION,
+    HDR_PRAGMA,
+    HDR_PROXY_CONNECTION,
     HDR_TRANSFER_ENCODING,
     HDR_UPGRADE,
     /* HDR_TRAILER, */
@@ -232,22 +244,68 @@ static http_hdr_type GeneralHeadersArr[] = {
 
 /* entity-headers */
 static http_hdr_type EntityHeadersArr[] = {
-    HDR_ALLOW, HDR_CONTENT_BASE, HDR_CONTENT_ENCODING, HDR_CONTENT_LANGUAGE,
-    HDR_CONTENT_LENGTH, HDR_CONTENT_LOCATION, HDR_CONTENT_MD5,
-    HDR_CONTENT_RANGE, HDR_CONTENT_TYPE, HDR_ETAG, HDR_EXPIRES, HDR_LAST_MODIFIED, HDR_LINK,
+    HDR_ALLOW,
+    HDR_CONTENT_BASE,
+    HDR_CONTENT_ENCODING,
+    HDR_CONTENT_LANGUAGE,
+    HDR_CONTENT_LENGTH,
+    HDR_CONTENT_LOCATION,
+    HDR_CONTENT_MD5,
+    HDR_CONTENT_RANGE,
+    HDR_CONTENT_TYPE,
+    HDR_ETAG,
+    HDR_EXPIRES,
+    HDR_LAST_MODIFIED,
+    HDR_LINK,
     HDR_OTHER
 };
 
+/* request-only headers */
+static HttpHeaderMask RequestHeadersMask;      /* set run-time using RequestHeaders */
+static http_hdr_type RequestHeadersArr[] = {
+    HDR_ACCEPT,
+    HDR_ACCEPT_CHARSET,
+    HDR_ACCEPT_ENCODING,
+    HDR_ACCEPT_LANGUAGE,
+    HDR_AUTHORIZATION,
+    HDR_EXPECT,
+    HDR_FROM,
+    HDR_HOST,
+    HDR_HTTP2_SETTINGS,
+    HDR_IF_MATCH,
+    HDR_IF_MODIFIED_SINCE,
+    HDR_IF_NONE_MATCH,
+    HDR_IF_RANGE,
+    HDR_IF_UNMODIFIED_SINCE,
+    HDR_MAX_FORWARDS,
+    HDR_ORIGIN,
+    HDR_PROXY_AUTHORIZATION,
+    HDR_RANGE,
+    HDR_REFERER,
+    HDR_REQUEST_RANGE,
+    HDR_TE,
+    HDR_USER_AGENT,
+    HDR_SURROGATE_CAPABILITY
+};
+
+/* reply-only headers */
 static HttpHeaderMask ReplyHeadersMask;                /* set run-time using ReplyHeaders */
 static http_hdr_type ReplyHeadersArr[] = {
-    HDR_ACCEPT, HDR_ACCEPT_CHARSET, HDR_ACCEPT_ENCODING, HDR_ACCEPT_LANGUAGE,
-    HDR_ACCEPT_RANGES, HDR_AGE,
+    HDR_ACCEPT_ENCODING,
+    HDR_ACCEPT_RANGES,
+    HDR_AGE,
     HDR_KEY,
-    HDR_LOCATION, HDR_MAX_FORWARDS,
-    HDR_MIME_VERSION, HDR_PUBLIC, HDR_RETRY_AFTER, HDR_SERVER, HDR_SET_COOKIE, HDR_SET_COOKIE2,
-    HDR_ORIGIN,
+    HDR_LOCATION,
+    HDR_PROXY_AUTHENTICATE,
+    HDR_PUBLIC,
+    HDR_RETRY_AFTER,
+    HDR_SERVER,
+    HDR_SET_COOKIE,
+    HDR_SET_COOKIE2,
     HDR_VARY,
-    HDR_WARNING, HDR_PROXY_CONNECTION, HDR_X_CACHE,
+    HDR_WARNING,
+    HDR_WWW_AUTHENTICATE,
+    HDR_X_CACHE,
     HDR_X_CACHE_LOOKUP,
     HDR_X_REQUEST_URI,
 #if X_ACCELERATOR_VARY
@@ -260,22 +318,19 @@ static http_hdr_type ReplyHeadersArr[] = {
     HDR_SURROGATE_CONTROL
 };
 
-static HttpHeaderMask RequestHeadersMask;      /* set run-time using RequestHeaders */
-static http_hdr_type RequestHeadersArr[] = {
-    HDR_AUTHORIZATION, HDR_FROM, HDR_HOST,
-    HDR_HTTP2_SETTINGS,
-    HDR_IF_MATCH, HDR_IF_MODIFIED_SINCE, HDR_IF_NONE_MATCH,
-    HDR_IF_RANGE, HDR_MAX_FORWARDS,
-    HDR_ORIGIN,
-    HDR_PROXY_CONNECTION,
-    HDR_PROXY_AUTHORIZATION, HDR_RANGE, HDR_REFERER, HDR_REQUEST_RANGE,
-    HDR_USER_AGENT, HDR_FORWARDED, HDR_X_FORWARDED_FOR, HDR_SURROGATE_CAPABILITY
-};
-
+/* hop-by-hop headers */
 static HttpHeaderMask HopByHopHeadersMask;
-static http_hdr_type HopByHopHeadersArr[] = {
-    HDR_CONNECTION, HDR_HTTP2_SETTINGS, HDR_KEEP_ALIVE, /*HDR_PROXY_AUTHENTICATE,*/ HDR_PROXY_AUTHORIZATION,
-    HDR_TE, HDR_TRAILER, HDR_TRANSFER_ENCODING, HDR_UPGRADE, HDR_PROXY_CONNECTION
+static http_hdr_type HopByHopRequestHeadersArr[] = {
+    HDR_CONNECTION,
+    HDR_HTTP2_SETTINGS,
+    HDR_KEEP_ALIVE,
+    /*HDR_PROXY_AUTHENTICATE, // removal handled specially for peer login */
+    HDR_PROXY_AUTHORIZATION,
+    HDR_TE,
+    HDR_TRAILER,
+    HDR_TRANSFER_ENCODING,
+    HDR_UPGRADE,
+    HDR_PROXY_CONNECTION
 };
 
 /* header accounting */
@@ -332,32 +387,23 @@ httpHeaderInitModule(void)
 
     /* create masks */
     httpHeaderMaskInit(&ListHeadersMask, 0);
-
     httpHeaderCalcMask(&ListHeadersMask, ListHeadersArr, countof(ListHeadersArr));
 
     httpHeaderMaskInit(&ReplyHeadersMask, 0);
-
     httpHeaderCalcMask(&ReplyHeadersMask, ReplyHeadersArr, countof(ReplyHeadersArr));
-
     httpHeaderCalcMask(&ReplyHeadersMask, GeneralHeadersArr, countof(GeneralHeadersArr));
-
     httpHeaderCalcMask(&ReplyHeadersMask, EntityHeadersArr, countof(EntityHeadersArr));
 
     httpHeaderMaskInit(&RequestHeadersMask, 0);
-
     httpHeaderCalcMask(&RequestHeadersMask, RequestHeadersArr, countof(RequestHeadersArr));
-
     httpHeaderCalcMask(&RequestHeadersMask, GeneralHeadersArr, countof(GeneralHeadersArr));
-
     httpHeaderCalcMask(&RequestHeadersMask, EntityHeadersArr, countof(EntityHeadersArr));
 
     httpHeaderMaskInit(&HopByHopHeadersMask, 0);
-
     httpHeaderCalcMask(&HopByHopHeadersMask, HopByHopHeadersArr, countof(HopByHopHeadersArr));
 
     /* init header stats */
     assert(HttpHeaderStatCount == hoReply + 1);
-
     for (i = 0; i < HttpHeaderStatCount; ++i)
         httpHeaderStatInit(HttpHeaderStats + i, HttpHeaderStats[i].label);
 
@@ -366,13 +412,11 @@ httpHeaderInitModule(void)
     HttpHeaderStats[hoReply].owner_mask = &ReplyHeadersMask;
 
 #if USE_HTCP
-
     HttpHeaderStats[hoHtcpReply].owner_mask = &ReplyHeadersMask;
-
 #endif
+
     /* init dependent modules */
     httpHdrCcInitModule();
-
     httpHdrScInitModule();
 
     httpHeaderRegisterWithCacheManager();