aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRoman Arutyunyan <arut@nginx.com>2020-07-02 20:07:24 +0300
committerRoman Arutyunyan <arut@nginx.com>2020-07-02 20:07:24 +0300
commit3db00b4da74ddc0872be4cdb836aaff7fc21272a (patch)
tree096ed5d4f27629ad9a025ac75ea46bbb537eb2d9 /src
parentac9c1dcad8becffd188321600ff4edd2d49dcca6 (diff)
downloadnginx-3db00b4da74ddc0872be4cdb836aaff7fc21272a.tar.gz
nginx-3db00b4da74ddc0872be4cdb836aaff7fc21272a.zip
HTTP/3: simplified handling return codes from parse functions.
Diffstat (limited to 'src')
-rw-r--r--src/http/v3/ngx_http_v3_parse.c34
1 files changed, 4 insertions, 30 deletions
diff --git a/src/http/v3/ngx_http_v3_parse.c b/src/http/v3/ngx_http_v3_parse.c
index e1e9444e1..bb52c9e94 100644
--- a/src/http/v3/ngx_http_v3_parse.c
+++ b/src/http/v3/ngx_http_v3_parse.c
@@ -197,11 +197,6 @@ ngx_http_v3_parse_headers(ngx_connection_t *c, ngx_http_v3_parse_headers_t *st,
}
rc = ngx_http_v3_parse_header_block_prefix(c, &st->prefix, ch);
-
- if (rc == NGX_AGAIN) {
- break;
- }
-
if (rc != NGX_DONE) {
return rc;
}
@@ -228,14 +223,9 @@ ngx_http_v3_parse_headers(ngx_connection_t *c, ngx_http_v3_parse_headers_t *st,
rc = ngx_http_v3_parse_header_rep(c, &st->header_rep, st->prefix.base,
ch);
- st->length--;
-
- if (rc == NGX_AGAIN) {
- if (st->length == 0) {
- return NGX_HTTP_V3_ERR_FRAME_ERROR;
- }
- break;
+ if (--st->length == 0 && rc == NGX_AGAIN) {
+ return NGX_HTTP_V3_ERR_FRAME_ERROR;
}
if (rc != NGX_DONE) {
@@ -1018,14 +1008,8 @@ ngx_http_v3_parse_control(ngx_connection_t *c, void *data, u_char ch)
rc = ngx_http_v3_parse_settings(c, &st->settings, ch);
- st->length--;
-
- if (rc == NGX_AGAIN) {
- if (st->length == 0) {
- return NGX_HTTP_V3_ERR_SETTINGS_ERROR;
- }
-
- break;
+ if (--st->length == 0 && rc == NGX_AGAIN) {
+ return NGX_HTTP_V3_ERR_SETTINGS_ERROR;
}
if (rc != NGX_DONE) {
@@ -1167,11 +1151,6 @@ ngx_http_v3_parse_encoder(ngx_connection_t *c, void *data, u_char ch)
case sw_inr:
rc = ngx_http_v3_parse_header_inr(c, &st->header, ch);
-
- if (rc == NGX_AGAIN) {
- break;
- }
-
if (rc != NGX_DONE) {
return rc;
}
@@ -1181,11 +1160,6 @@ ngx_http_v3_parse_encoder(ngx_connection_t *c, void *data, u_char ch)
case sw_iwnr:
rc = ngx_http_v3_parse_header_iwnr(c, &st->header, ch);
-
- if (rc == NGX_AGAIN) {
- break;
- }
-
if (rc != NGX_DONE) {
return rc;
}