From: Amos Jeffries Date: Thu, 8 Aug 2013 06:08:37 +0000 (-0600) Subject: Register Http2-Settings header X-Git-Tag: SQUID_3_4_0_2~35 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6511356c714f37bf13eca5c0069c3f5f020d861c;p=thirdparty%2Fsquid.git Register Http2-Settings header This header ia a hop-by-hop request-only header and requires stripping by intermediaries which do not support HTTP/2.0 in Upgrade feature. We register it now to ensure the stripping occurs even if broken clients omit it from the Connection header list. --- diff --git a/src/HttpHeader.cc b/src/HttpHeader.cc index 17740d570b..60aeb26472 100644 --- a/src/HttpHeader.cc +++ b/src/HttpHeader.cc @@ -107,6 +107,7 @@ static const HttpHeaderFieldAttrs HeadersAttrs[] = { {"Expires", HDR_EXPIRES, ftDate_1123}, {"From", HDR_FROM, ftStr}, {"Host", HDR_HOST, ftStr}, + {"HTTP2-Settings", HDR_HTTP2_SETTINGS, ftStr}, /* for now */ {"If-Match", HDR_IF_MATCH, ftStr}, /* for now */ {"If-Modified-Since", HDR_IF_MODIFIED_SINCE, ftDate_1123}, {"If-None-Match", HDR_IF_NONE_MATCH, ftStr}, /* for now */ @@ -254,6 +255,7 @@ static http_hdr_type ReplyHeadersArr[] = { 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, @@ -264,7 +266,7 @@ static http_hdr_type RequestHeadersArr[] = { static HttpHeaderMask HopByHopHeadersMask; static http_hdr_type HopByHopHeadersArr[] = { - HDR_CONNECTION, HDR_KEEP_ALIVE, /*HDR_PROXY_AUTHENTICATE,*/ HDR_PROXY_AUTHORIZATION, + 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 }; diff --git a/src/HttpHeader.h b/src/HttpHeader.h index d55b1fa25f..8681d1aaca 100644 --- a/src/HttpHeader.h +++ b/src/HttpHeader.h @@ -83,6 +83,7 @@ typedef enum { HDR_EXPIRES, /**< RFC 2608, 2616 */ HDR_FROM, /**< RFC 2608, 2616 */ HDR_HOST, /**< RFC 2608, 2616 */ + HDR_HTTP2_SETTINGS, /**< HTTP/2.0 upgrade header. see draft-ietf-httpbis-http2-04 */ /*HDR_IF,*/ /* RFC 2518 */ HDR_IF_MATCH, /**< RFC 2608, 2616 */ HDR_IF_MODIFIED_SINCE, /**< RFC 2608, 2616 */