annotate src/http/v3/ngx_http_v3_parse.h @ 7870:e169cce912c7 quic

Avoid retransmitting of packets with discarded keys. Sections 4.10.1 and 4.10.2 of quic transport describe discarding of initial and handshake keys. Since the keys are discarded, we no longer need to retransmit packets and corresponding queues should be emptied. This patch removes previously added workaround that did not require acknowledgement for initial packets, resulting in avoiding retransmission, which is wrong because a packet could be lost and we have to retransmit it.
author Vladimir Homutov <vl@nginx.com>
date Mon, 18 May 2020 13:54:53 +0300
parents 5649079a41f4
children b0e81f49d7c0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7692
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
1
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
2 /*
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
3 * Copyright (C) Roman Arutyunyan
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
4 * Copyright (C) Nginx, Inc.
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
5 */
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
6
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
7
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
8 #ifndef _NGX_HTTP_V3_PARSE_H_INCLUDED_
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
9 #define _NGX_HTTP_V3_PARSE_H_INCLUDED_
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
10
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
11
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
12 #include <ngx_config.h>
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
13 #include <ngx_core.h>
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
14 #include <ngx_http.h>
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
15
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
16
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
17 typedef struct {
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
18 ngx_uint_t state;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
19 uint64_t value;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
20 } ngx_http_v3_parse_varlen_int_t;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
21
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
22
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
23 typedef struct {
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
24 ngx_uint_t state;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
25 ngx_uint_t mask;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
26 uint64_t value;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
27 } ngx_http_v3_parse_prefix_int_t;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
28
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
29
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
30 typedef struct {
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
31 ngx_uint_t state;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
32 uint64_t id;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
33 ngx_http_v3_parse_varlen_int_t vlint;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
34 } ngx_http_v3_parse_settings_t;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
35
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
36
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
37 typedef struct {
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
38 ngx_uint_t state;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
39 ngx_uint_t insert_count;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
40 ngx_uint_t delta_base;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
41 ngx_uint_t sign;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
42 ngx_uint_t base;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
43 ngx_http_v3_parse_prefix_int_t pint;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
44 } ngx_http_v3_parse_header_block_prefix_t;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
45
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
46
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
47 typedef struct {
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
48 ngx_uint_t state;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
49 ngx_uint_t length;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
50 ngx_uint_t huffman;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
51 ngx_str_t value;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
52 u_char *last;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
53 u_char huffstate;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
54 } ngx_http_v3_parse_literal_t;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
55
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
56
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
57 typedef struct {
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
58 ngx_uint_t state;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
59 ngx_uint_t index;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
60 ngx_uint_t base;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
61 ngx_uint_t dynamic;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
62
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
63 ngx_str_t name;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
64 ngx_str_t value;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
65
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
66 ngx_http_v3_parse_prefix_int_t pint;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
67 ngx_http_v3_parse_literal_t literal;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
68 } ngx_http_v3_parse_header_t;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
69
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
70
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
71 typedef struct {
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
72 ngx_uint_t state;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
73 ngx_http_v3_parse_header_t header;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
74 } ngx_http_v3_parse_header_rep_t;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
75
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
76
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
77 typedef struct {
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
78 ngx_uint_t state;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
79 ngx_uint_t length;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
80 ngx_http_v3_parse_varlen_int_t vlint;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
81 ngx_http_v3_parse_header_block_prefix_t prefix;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
82 ngx_http_v3_parse_header_rep_t header_rep;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
83 } ngx_http_v3_parse_headers_t;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
84
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
85
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
86 typedef struct {
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
87 ngx_uint_t state;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
88 ngx_http_v3_parse_header_t header;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
89 ngx_http_v3_parse_prefix_int_t pint;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
90 } ngx_http_v3_parse_encoder_t;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
91
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
92
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
93 typedef struct {
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
94 ngx_uint_t state;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
95 ngx_http_v3_parse_prefix_int_t pint;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
96 } ngx_http_v3_parse_decoder_t;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
97
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
98
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
99 typedef struct {
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
100 ngx_uint_t state;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
101 ngx_uint_t type;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
102 ngx_uint_t length;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
103 ngx_http_v3_parse_varlen_int_t vlint;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
104 ngx_http_v3_parse_settings_t settings;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
105 } ngx_http_v3_parse_control_t;
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
106
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
107
7761
5649079a41f4 Parsing HTTP/3 request body.
Roman Arutyunyan <arut@nginx.com>
parents: 7692
diff changeset
108 typedef struct {
5649079a41f4 Parsing HTTP/3 request body.
Roman Arutyunyan <arut@nginx.com>
parents: 7692
diff changeset
109 ngx_uint_t state;
5649079a41f4 Parsing HTTP/3 request body.
Roman Arutyunyan <arut@nginx.com>
parents: 7692
diff changeset
110 ngx_uint_t length;
5649079a41f4 Parsing HTTP/3 request body.
Roman Arutyunyan <arut@nginx.com>
parents: 7692
diff changeset
111 ngx_http_v3_parse_varlen_int_t vlint;
5649079a41f4 Parsing HTTP/3 request body.
Roman Arutyunyan <arut@nginx.com>
parents: 7692
diff changeset
112 } ngx_http_v3_parse_data_t;
5649079a41f4 Parsing HTTP/3 request body.
Roman Arutyunyan <arut@nginx.com>
parents: 7692
diff changeset
113
5649079a41f4 Parsing HTTP/3 request body.
Roman Arutyunyan <arut@nginx.com>
parents: 7692
diff changeset
114
7692
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
115 ngx_int_t ngx_http_v3_parse_varlen_int(ngx_connection_t *c,
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
116 ngx_http_v3_parse_varlen_int_t *st, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
117 ngx_int_t ngx_http_v3_parse_prefix_int(ngx_connection_t *c,
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
118 ngx_http_v3_parse_prefix_int_t *st, ngx_uint_t prefix, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
119
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
120 ngx_int_t ngx_http_v3_parse_headers(ngx_connection_t *c,
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
121 ngx_http_v3_parse_headers_t *st, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
122 ngx_int_t ngx_http_v3_parse_header_block_prefix(ngx_connection_t *c,
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
123 ngx_http_v3_parse_header_block_prefix_t *st, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
124 ngx_int_t ngx_http_v3_parse_header_rep(ngx_connection_t *c,
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
125 ngx_http_v3_parse_header_rep_t *st, ngx_uint_t base, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
126 ngx_int_t ngx_http_v3_parse_literal(ngx_connection_t *c,
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
127 ngx_http_v3_parse_literal_t *st, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
128 ngx_int_t ngx_http_v3_parse_header_ri(ngx_connection_t *c,
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
129 ngx_http_v3_parse_header_t *st, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
130 ngx_int_t ngx_http_v3_parse_header_lri(ngx_connection_t *c,
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
131 ngx_http_v3_parse_header_t *st, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
132 ngx_int_t ngx_http_v3_parse_header_l(ngx_connection_t *c,
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
133 ngx_http_v3_parse_header_t *st, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
134 ngx_int_t ngx_http_v3_parse_header_pbi(ngx_connection_t *c,
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
135 ngx_http_v3_parse_header_t *st, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
136 ngx_int_t ngx_http_v3_parse_header_lpbi(ngx_connection_t *c,
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
137 ngx_http_v3_parse_header_t *st, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
138
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
139 ngx_int_t ngx_http_v3_parse_control(ngx_connection_t *c, void *data, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
140 ngx_int_t ngx_http_v3_parse_settings(ngx_connection_t *c,
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
141 ngx_http_v3_parse_settings_t *st, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
142
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
143 ngx_int_t ngx_http_v3_parse_encoder(ngx_connection_t *c, void *data, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
144 ngx_int_t ngx_http_v3_parse_header_inr(ngx_connection_t *c,
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
145 ngx_http_v3_parse_header_t *st, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
146 ngx_int_t ngx_http_v3_parse_header_iwnr(ngx_connection_t *c,
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
147 ngx_http_v3_parse_header_t *st, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
148
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
149 ngx_int_t ngx_http_v3_parse_decoder(ngx_connection_t *c, void *data, u_char ch);
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
150
7761
5649079a41f4 Parsing HTTP/3 request body.
Roman Arutyunyan <arut@nginx.com>
parents: 7692
diff changeset
151 ngx_int_t ngx_http_v3_parse_data(ngx_connection_t *c,
5649079a41f4 Parsing HTTP/3 request body.
Roman Arutyunyan <arut@nginx.com>
parents: 7692
diff changeset
152 ngx_http_v3_parse_data_t *st, u_char ch);
5649079a41f4 Parsing HTTP/3 request body.
Roman Arutyunyan <arut@nginx.com>
parents: 7692
diff changeset
153
7692
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
154
268f4389130d Refactored HTTP/3 parser.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
155 #endif /* _NGX_HTTP_V3_PARSE_H_INCLUDED_ */