}
rc = ngx_http_v3_parse_header_block_prefix(c, &st->prefix, ch);
-
- if (rc == NGX_AGAIN) {
- break;
- }
-
if (rc != NGX_DONE) {
return rc;
}
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) {
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) {
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;
}
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;
}