]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
HTTP/2: Support 421 (Misdirected Request) status code
authorAmos Jeffries <squid3@treenet.co.nz>
Wed, 3 Dec 2014 15:13:08 +0000 (07:13 -0800)
committerAmos Jeffries <squid3@treenet.co.nz>
Wed, 3 Dec 2014 15:13:08 +0000 (07:13 -0800)
Add support for status 421 responses. Squid is forbidden from generating
messages with this status in its role as proxy, however we expect to see
it being produced in responses by HTTP/2 servers in traffic from HTTP
2.0<->1.1 gateways.

We also MAY emit it on future reverse-proxy responses in the event of a
ERR_CANNOT_FORWARD message.

src/http.cc
src/http/StatusCode.cc
src/http/StatusCode.h

index 2509a88eabd3e3b2f50b3d799bea2589c7f2547f..f776d9e5659206840590341a2a4f48d95dc7d636 100644 (file)
@@ -517,6 +517,8 @@ HttpStateData::cacheableReply()
     case Http::scServiceUnavailable:
 
     case Http::scGatewayTimeout:
+    case Http::scMisdirectedRequest:
+
         debugs(22, 3, "MAYBE because HTTP status " << rep->sline.status());
         return -1;
 
index 56cdeed0ddf87d9b4f833c36f49bbd2e7a07bfdf..2bea66beaad1573e8e8224fc6f0132ca0b3e735c 100644 (file)
@@ -180,6 +180,10 @@ Http::StatusCodeString(const Http::StatusCode status)
         return "Expectation Failed";
         break;
 
+    case Http::scMisdirectedRequest:
+        return "Misdirected Request";
+        break;
+
     case Http::scUnprocessableEntity:
         return "Unprocessable Entity";
         break;
index e476fe64ab4e4e5477c60a54af6a432d58372453..88fe7cf6885edfb34d5a232b06736deff053430a 100644 (file)
@@ -58,6 +58,7 @@ typedef enum {
     scUnsupportedMediaType = 415,
     scRequestedRangeNotSatisfied = 416,
     scExpectationFailed = 417,
+    scMisdirectedRequest = 421,     /**< draft-ietf-httpbis-http2-16 section 9.1.2 */
     scUnprocessableEntity = 422,    /**< RFC2518 section 10.3 / RFC4918 */
     scLocked = 423,                 /**< RFC2518 section 10.4 / RFC4918 */
     scFailedDependency = 424,       /**< RFC2518 section 10.5 / RFC4918 */