changeset 8467:e02250b55b17 quic

HTTP/3: simplified handling return codes from parse functions.
author Roman Arutyunyan <arut@nginx.com>
date Thu, 02 Jul 2020 20:07:24 +0300
parents 4fd709540daf
children 001ec7fce567
files src/http/v3/ngx_http_v3_parse.c
diffstat 1 files changed, 4 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- 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
         }
 
         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
 
         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
 
         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
     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
     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;
         }