aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/http/ngx_http_parse.c6
-rw-r--r--src/http/ngx_http_request_body.c22
2 files changed, 20 insertions, 8 deletions
diff --git a/src/http/ngx_http_parse.c b/src/http/ngx_http_parse.c
index 92bcf12ad..f66593443 100644
--- a/src/http/ngx_http_parse.c
+++ b/src/http/ngx_http_parse.c
@@ -2185,12 +2185,6 @@ ngx_http_parse_chunked(ngx_http_request_t *r, ngx_buf_t *b,
sw_trailer_header_almost_done
} state;
-#if (NGX_HTTP_V3)
- if (r->http_version == NGX_HTTP_VERSION_30) {
- return ngx_http_v3_parse_request_body(r, b, ctx);
- }
-#endif
-
state = ctx->state;
if (state == sw_chunk_data && ctx->size == 0) {
diff --git a/src/http/ngx_http_request_body.c b/src/http/ngx_http_request_body.c
index b07d8562f..568f11f02 100644
--- a/src/http/ngx_http_request_body.c
+++ b/src/http/ngx_http_request_body.c
@@ -735,7 +735,16 @@ ngx_http_discard_request_body_filter(ngx_http_request_t *r, ngx_buf_t *b)
for ( ;; ) {
- rc = ngx_http_parse_chunked(r, b, rb->chunked);
+ switch (r->http_version) {
+#if (NGX_HTTP_V3)
+ case NGX_HTTP_VERSION_30:
+ rc = ngx_http_v3_parse_request_body(r, b, rb->chunked);
+ break;
+#endif
+
+ default: /* HTTP/1.x */
+ rc = ngx_http_parse_chunked(r, b, rb->chunked);
+ }
if (rc == NGX_OK) {
@@ -978,7 +987,16 @@ ngx_http_request_body_chunked_filter(ngx_http_request_t *r, ngx_chain_t *in)
cl->buf->file_pos,
cl->buf->file_last - cl->buf->file_pos);
- rc = ngx_http_parse_chunked(r, cl->buf, rb->chunked);
+ switch (r->http_version) {
+#if (NGX_HTTP_V3)
+ case NGX_HTTP_VERSION_30:
+ rc = ngx_http_v3_parse_request_body(r, cl->buf, rb->chunked);
+ break;
+#endif
+
+ default: /* HTTP/1.x */
+ rc = ngx_http_parse_chunked(r, cl->buf, rb->chunked);
+ }
if (rc == NGX_OK) {