comparison src/http/v3/ngx_http_v3_request.c @ 8456:c9538aef3211 quic

HTTP/3: refactored dynamic table implementation. Previously dynamic table was not functional because of zero limit on its size set by default. Now the following changes enable it: - new directives to set SETTINGS_QPACK_MAX_TABLE_CAPACITY and SETTINGS_QPACK_BLOCKED_STREAMS - send settings with SETTINGS_QPACK_MAX_TABLE_CAPACITY and SETTINGS_QPACK_BLOCKED_STREAMS to the client - send Insert Count Increment to the client - send Header Acknowledgement to the client - evict old dynamic table entries on overflow - decode Required Insert Count from client - block stream if Required Insert Count is not reached
author Roman Arutyunyan <arut@nginx.com>
date Thu, 02 Jul 2020 15:34:05 +0300
parents a6675a976560
children 72f9ff4e0a88
comparison
equal deleted inserted replaced
8455:b0e81f49d7c0 8456:c9538aef3211
62 r->parse_start = b->pos; 62 r->parse_start = b->pos;
63 r->state = 1; 63 r->state = 1;
64 } 64 }
65 65
66 while (b->pos < b->last) { 66 while (b->pos < b->last) {
67 rc = ngx_http_v3_parse_headers(c, st, *b->pos++); 67 rc = ngx_http_v3_parse_headers(c, st, *b->pos);
68 68
69 if (rc == NGX_ERROR) { 69 if (rc == NGX_ERROR) {
70 goto failed; 70 goto failed;
71 } 71 }
72
73 if (rc == NGX_BUSY) {
74 return NGX_BUSY;
75 }
76
77 b->pos++;
72 78
73 if (rc == NGX_AGAIN) { 79 if (rc == NGX_AGAIN) {
74 continue; 80 continue;
75 } 81 }
76 82