diff src/http/ngx_http_request_body.c @ 6989:2c4dbcd6f2e4

HTTP/2: reduced difference to HTTP/1.x in reading request body. Particularly, this eliminates difference in behavior for requests without body and deduplicates code. Prodded by Piotr Sikora.
author Valentin Bartenev <vbart@nginx.com>
date Mon, 24 Apr 2017 14:17:13 +0300
parents 5e2423bce883
children 08ff2e10ae92 5649079a41f4
line wrap: on
line diff
--- a/src/http/ngx_http_request_body.c
+++ b/src/http/ngx_http_request_body.c
@@ -46,13 +46,6 @@ ngx_http_read_client_request_body(ngx_ht
         return NGX_OK;
     }
 
-#if (NGX_HTTP_V2)
-    if (r->stream) {
-        rc = ngx_http_v2_read_request_body(r, post_handler);
-        goto done;
-    }
-#endif
-
     if (ngx_http_test_expect(r) != NGX_OK) {
         rc = NGX_HTTP_INTERNAL_SERVER_ERROR;
         goto done;
@@ -85,6 +78,13 @@ ngx_http_read_client_request_body(ngx_ht
         return NGX_OK;
     }
 
+#if (NGX_HTTP_V2)
+    if (r->stream) {
+        rc = ngx_http_v2_read_request_body(r);
+        goto done;
+    }
+#endif
+
     preread = r->header_in->last - r->header_in->pos;
 
     if (preread) {
@@ -805,7 +805,11 @@ ngx_http_test_expect(ngx_http_request_t 
 
     if (r->expect_tested
         || r->headers_in.expect == NULL
-        || r->http_version < NGX_HTTP_VERSION_11)
+        || r->http_version < NGX_HTTP_VERSION_11
+#if (NGX_HTTP_V2)
+        || r->stream != NULL
+#endif
+       )
     {
         return NGX_OK;
     }