]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
HTTP/2: Support 421 (Misdirected Request) status code
authorAmos Jeffries <squid3@treenet.co.nz>
Mon, 8 Dec 2014 12:05:17 +0000 (04:05 -0800)
committerAmos Jeffries <squid3@treenet.co.nz>
Mon, 8 Dec 2014 12:05:17 +0000 (04:05 -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 0e6eb0c8c6717601237134dceb74469493d82b6e..33caadc2b587c13cf88455df95d8286e38c8d1b9 100644 (file)
@@ -528,6 +528,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 854492ba4bed5c8967b7168b39111ad0de0b80e2..771c95ce91b42095b31f18e769d320c70d4b8a8e 100644 (file)
@@ -172,6 +172,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 349b1ed82a3238f2e180852f7533c2084e826a31..228241db9281a0bfe3e3d1ef64e155638e0be94b 100644 (file)
@@ -50,6 +50,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 */