Skip to content

Commit e804c0f

Browse files
lambdaihtuch
andauthored
[1.4] build: bump nghttp2 to 1.41.0. (envoyproxy#11412) (#30)
* build: bump nghttp2 to 1.41.0. (envoyproxy#11412) See release notes at https://github.com/nghttp2/nghttp2/releases/tag/v1.41.0. This addresses GHSA-q5wr-xfw9-q7xr. Signed-off-by: Harvey Tuch <htuch@google.com> Signed-off-by: Yuchen Dai <silentdai@gmail.com> * build: bump nghttp2 to 1.41.0. (envoyproxy#11412) See release notes at https://github.com/nghttp2/nghttp2/releases/tag/v1.41.0. This addresses GHSA-q5wr-xfw9-q7xr. Set nghttp2 internal flood mitigation threshold back to 10K to avoid any changes in Envoy's codec behavior. Signed-off-by: Harvey Tuch <htuch@google.com> Signed-off-by: Yan Avlasov <yavlasov@google.com> Signed-off-by: Piotr Sikora <piotrsikora@google.com> Co-authored-by: htuch <htuch@users.noreply.github.com>
1 parent d6555b0 commit e804c0f

File tree

5 files changed

+21
-233
lines changed

5 files changed

+21
-233
lines changed

bazel/foreign_cc/nghttp2.patch

-223
Original file line numberDiff line numberDiff line change
@@ -15,226 +15,3 @@ index 35c77d1d..47bd63f5 100644
1515
endif()
1616
# AC_TYPE_UINT8_T
1717
# AC_TYPE_UINT16_T
18-
diff --git a/doc/Makefile.am b/doc/Makefile.am
19-
index c17d93382..4d73cef50 100644
20-
--- a/doc/Makefile.am
21-
+++ b/doc/Makefile.am
22-
@@ -27,6 +27,7 @@ APIDOCS= \
23-
macros.rst \
24-
enums.rst \
25-
types.rst \
26-
+ nghttp2_check_authority.rst \
27-
nghttp2_check_header_name.rst \
28-
nghttp2_check_header_value.rst \
29-
nghttp2_hd_deflate_bound.rst \
30-
diff --git a/lib/includes/nghttp2/nghttp2.h b/lib/includes/nghttp2/nghttp2.h
31-
index 313fb23da..e3aeb9fed 100644
32-
--- a/lib/includes/nghttp2/nghttp2.h
33-
+++ b/lib/includes/nghttp2/nghttp2.h
34-
@@ -4769,6 +4769,19 @@ NGHTTP2_EXTERN int nghttp2_check_header_name(const uint8_t *name, size_t len);
35-
*/
36-
NGHTTP2_EXTERN int nghttp2_check_header_value(const uint8_t *value, size_t len);
37-
38-
+/**
39-
+ * @function
40-
+ *
41-
+ * Returns nonzero if the |value| which is supposed to the value of
42-
+ * :authority or host header field is valid according to
43-
+ * https://tools.ietf.org/html/rfc3986#section-3.2
44-
+ *
45-
+ * |value| is valid if it merely consists of the allowed characters.
46-
+ * In particular, it does not check whether |value| follows the syntax
47-
+ * of authority.
48-
+ */
49-
+NGHTTP2_EXTERN int nghttp2_check_authority(const uint8_t *value, size_t len);
50-
+
51-
/* HPACK API */
52-
53-
struct nghttp2_hd_deflater;
54-
diff --git a/lib/nghttp2_helper.c b/lib/nghttp2_helper.c
55-
index 81a8a0cf9..91136a619 100644
56-
--- a/lib/nghttp2_helper.c
57-
+++ b/lib/nghttp2_helper.c
58-
@@ -505,6 +505,84 @@ int nghttp2_check_header_value(const uint8_t *value, size_t len) {
59-
return 1;
60-
}
61-
62-
+/* Generated by genauthroitychartbl.py */
63-
+static char VALID_AUTHORITY_CHARS[] = {
64-
+ 0 /* NUL */, 0 /* SOH */, 0 /* STX */, 0 /* ETX */,
65-
+ 0 /* EOT */, 0 /* ENQ */, 0 /* ACK */, 0 /* BEL */,
66-
+ 0 /* BS */, 0 /* HT */, 0 /* LF */, 0 /* VT */,
67-
+ 0 /* FF */, 0 /* CR */, 0 /* SO */, 0 /* SI */,
68-
+ 0 /* DLE */, 0 /* DC1 */, 0 /* DC2 */, 0 /* DC3 */,
69-
+ 0 /* DC4 */, 0 /* NAK */, 0 /* SYN */, 0 /* ETB */,
70-
+ 0 /* CAN */, 0 /* EM */, 0 /* SUB */, 0 /* ESC */,
71-
+ 0 /* FS */, 0 /* GS */, 0 /* RS */, 0 /* US */,
72-
+ 0 /* SPC */, 1 /* ! */, 0 /* " */, 0 /* # */,
73-
+ 1 /* $ */, 1 /* % */, 1 /* & */, 1 /* ' */,
74-
+ 1 /* ( */, 1 /* ) */, 1 /* * */, 1 /* + */,
75-
+ 1 /* , */, 1 /* - */, 1 /* . */, 0 /* / */,
76-
+ 1 /* 0 */, 1 /* 1 */, 1 /* 2 */, 1 /* 3 */,
77-
+ 1 /* 4 */, 1 /* 5 */, 1 /* 6 */, 1 /* 7 */,
78-
+ 1 /* 8 */, 1 /* 9 */, 1 /* : */, 1 /* ; */,
79-
+ 0 /* < */, 1 /* = */, 0 /* > */, 0 /* ? */,
80-
+ 1 /* @ */, 1 /* A */, 1 /* B */, 1 /* C */,
81-
+ 1 /* D */, 1 /* E */, 1 /* F */, 1 /* G */,
82-
+ 1 /* H */, 1 /* I */, 1 /* J */, 1 /* K */,
83-
+ 1 /* L */, 1 /* M */, 1 /* N */, 1 /* O */,
84-
+ 1 /* P */, 1 /* Q */, 1 /* R */, 1 /* S */,
85-
+ 1 /* T */, 1 /* U */, 1 /* V */, 1 /* W */,
86-
+ 1 /* X */, 1 /* Y */, 1 /* Z */, 1 /* [ */,
87-
+ 0 /* \ */, 1 /* ] */, 0 /* ^ */, 1 /* _ */,
88-
+ 0 /* ` */, 1 /* a */, 1 /* b */, 1 /* c */,
89-
+ 1 /* d */, 1 /* e */, 1 /* f */, 1 /* g */,
90-
+ 1 /* h */, 1 /* i */, 1 /* j */, 1 /* k */,
91-
+ 1 /* l */, 1 /* m */, 1 /* n */, 1 /* o */,
92-
+ 1 /* p */, 1 /* q */, 1 /* r */, 1 /* s */,
93-
+ 1 /* t */, 1 /* u */, 1 /* v */, 1 /* w */,
94-
+ 1 /* x */, 1 /* y */, 1 /* z */, 0 /* { */,
95-
+ 0 /* | */, 0 /* } */, 1 /* ~ */, 0 /* DEL */,
96-
+ 0 /* 0x80 */, 0 /* 0x81 */, 0 /* 0x82 */, 0 /* 0x83 */,
97-
+ 0 /* 0x84 */, 0 /* 0x85 */, 0 /* 0x86 */, 0 /* 0x87 */,
98-
+ 0 /* 0x88 */, 0 /* 0x89 */, 0 /* 0x8a */, 0 /* 0x8b */,
99-
+ 0 /* 0x8c */, 0 /* 0x8d */, 0 /* 0x8e */, 0 /* 0x8f */,
100-
+ 0 /* 0x90 */, 0 /* 0x91 */, 0 /* 0x92 */, 0 /* 0x93 */,
101-
+ 0 /* 0x94 */, 0 /* 0x95 */, 0 /* 0x96 */, 0 /* 0x97 */,
102-
+ 0 /* 0x98 */, 0 /* 0x99 */, 0 /* 0x9a */, 0 /* 0x9b */,
103-
+ 0 /* 0x9c */, 0 /* 0x9d */, 0 /* 0x9e */, 0 /* 0x9f */,
104-
+ 0 /* 0xa0 */, 0 /* 0xa1 */, 0 /* 0xa2 */, 0 /* 0xa3 */,
105-
+ 0 /* 0xa4 */, 0 /* 0xa5 */, 0 /* 0xa6 */, 0 /* 0xa7 */,
106-
+ 0 /* 0xa8 */, 0 /* 0xa9 */, 0 /* 0xaa */, 0 /* 0xab */,
107-
+ 0 /* 0xac */, 0 /* 0xad */, 0 /* 0xae */, 0 /* 0xaf */,
108-
+ 0 /* 0xb0 */, 0 /* 0xb1 */, 0 /* 0xb2 */, 0 /* 0xb3 */,
109-
+ 0 /* 0xb4 */, 0 /* 0xb5 */, 0 /* 0xb6 */, 0 /* 0xb7 */,
110-
+ 0 /* 0xb8 */, 0 /* 0xb9 */, 0 /* 0xba */, 0 /* 0xbb */,
111-
+ 0 /* 0xbc */, 0 /* 0xbd */, 0 /* 0xbe */, 0 /* 0xbf */,
112-
+ 0 /* 0xc0 */, 0 /* 0xc1 */, 0 /* 0xc2 */, 0 /* 0xc3 */,
113-
+ 0 /* 0xc4 */, 0 /* 0xc5 */, 0 /* 0xc6 */, 0 /* 0xc7 */,
114-
+ 0 /* 0xc8 */, 0 /* 0xc9 */, 0 /* 0xca */, 0 /* 0xcb */,
115-
+ 0 /* 0xcc */, 0 /* 0xcd */, 0 /* 0xce */, 0 /* 0xcf */,
116-
+ 0 /* 0xd0 */, 0 /* 0xd1 */, 0 /* 0xd2 */, 0 /* 0xd3 */,
117-
+ 0 /* 0xd4 */, 0 /* 0xd5 */, 0 /* 0xd6 */, 0 /* 0xd7 */,
118-
+ 0 /* 0xd8 */, 0 /* 0xd9 */, 0 /* 0xda */, 0 /* 0xdb */,
119-
+ 0 /* 0xdc */, 0 /* 0xdd */, 0 /* 0xde */, 0 /* 0xdf */,
120-
+ 0 /* 0xe0 */, 0 /* 0xe1 */, 0 /* 0xe2 */, 0 /* 0xe3 */,
121-
+ 0 /* 0xe4 */, 0 /* 0xe5 */, 0 /* 0xe6 */, 0 /* 0xe7 */,
122-
+ 0 /* 0xe8 */, 0 /* 0xe9 */, 0 /* 0xea */, 0 /* 0xeb */,
123-
+ 0 /* 0xec */, 0 /* 0xed */, 0 /* 0xee */, 0 /* 0xef */,
124-
+ 0 /* 0xf0 */, 0 /* 0xf1 */, 0 /* 0xf2 */, 0 /* 0xf3 */,
125-
+ 0 /* 0xf4 */, 0 /* 0xf5 */, 0 /* 0xf6 */, 0 /* 0xf7 */,
126-
+ 0 /* 0xf8 */, 0 /* 0xf9 */, 0 /* 0xfa */, 0 /* 0xfb */,
127-
+ 0 /* 0xfc */, 0 /* 0xfd */, 0 /* 0xfe */, 0 /* 0xff */
128-
+};
129-
+
130-
+int nghttp2_check_authority(const uint8_t *value, size_t len) {
131-
+ const uint8_t *last;
132-
+ for (last = value + len; value != last; ++value) {
133-
+ if (!VALID_AUTHORITY_CHARS[*value]) {
134-
+ return 0;
135-
+ }
136-
+ }
137-
+ return 1;
138-
+}
139-
+
140-
uint8_t *nghttp2_cpymem(uint8_t *dest, const void *src, size_t len) {
141-
if (len == 0) {
142-
return dest;
143-
diff --git a/lib/nghttp2_http.c b/lib/nghttp2_http.c
144-
index 8d9902998..62f57b6ae 100644
145-
--- a/lib/nghttp2_http.c
146-
+++ b/lib/nghttp2_http.c
147-
@@ -305,84 +305,6 @@ static int http_response_on_header(nghttp2_stream *stream, nghttp2_hd_nv *nv,
148-
return 0;
149-
}
150-
151-
-/* Generated by genauthroitychartbl.py */
152-
-static char VALID_AUTHORITY_CHARS[] = {
153-
- 0 /* NUL */, 0 /* SOH */, 0 /* STX */, 0 /* ETX */,
154-
- 0 /* EOT */, 0 /* ENQ */, 0 /* ACK */, 0 /* BEL */,
155-
- 0 /* BS */, 0 /* HT */, 0 /* LF */, 0 /* VT */,
156-
- 0 /* FF */, 0 /* CR */, 0 /* SO */, 0 /* SI */,
157-
- 0 /* DLE */, 0 /* DC1 */, 0 /* DC2 */, 0 /* DC3 */,
158-
- 0 /* DC4 */, 0 /* NAK */, 0 /* SYN */, 0 /* ETB */,
159-
- 0 /* CAN */, 0 /* EM */, 0 /* SUB */, 0 /* ESC */,
160-
- 0 /* FS */, 0 /* GS */, 0 /* RS */, 0 /* US */,
161-
- 0 /* SPC */, 1 /* ! */, 0 /* " */, 0 /* # */,
162-
- 1 /* $ */, 1 /* % */, 1 /* & */, 1 /* ' */,
163-
- 1 /* ( */, 1 /* ) */, 1 /* * */, 1 /* + */,
164-
- 1 /* , */, 1 /* - */, 1 /* . */, 0 /* / */,
165-
- 1 /* 0 */, 1 /* 1 */, 1 /* 2 */, 1 /* 3 */,
166-
- 1 /* 4 */, 1 /* 5 */, 1 /* 6 */, 1 /* 7 */,
167-
- 1 /* 8 */, 1 /* 9 */, 1 /* : */, 1 /* ; */,
168-
- 0 /* < */, 1 /* = */, 0 /* > */, 0 /* ? */,
169-
- 1 /* @ */, 1 /* A */, 1 /* B */, 1 /* C */,
170-
- 1 /* D */, 1 /* E */, 1 /* F */, 1 /* G */,
171-
- 1 /* H */, 1 /* I */, 1 /* J */, 1 /* K */,
172-
- 1 /* L */, 1 /* M */, 1 /* N */, 1 /* O */,
173-
- 1 /* P */, 1 /* Q */, 1 /* R */, 1 /* S */,
174-
- 1 /* T */, 1 /* U */, 1 /* V */, 1 /* W */,
175-
- 1 /* X */, 1 /* Y */, 1 /* Z */, 1 /* [ */,
176-
- 0 /* \ */, 1 /* ] */, 0 /* ^ */, 1 /* _ */,
177-
- 0 /* ` */, 1 /* a */, 1 /* b */, 1 /* c */,
178-
- 1 /* d */, 1 /* e */, 1 /* f */, 1 /* g */,
179-
- 1 /* h */, 1 /* i */, 1 /* j */, 1 /* k */,
180-
- 1 /* l */, 1 /* m */, 1 /* n */, 1 /* o */,
181-
- 1 /* p */, 1 /* q */, 1 /* r */, 1 /* s */,
182-
- 1 /* t */, 1 /* u */, 1 /* v */, 1 /* w */,
183-
- 1 /* x */, 1 /* y */, 1 /* z */, 0 /* { */,
184-
- 0 /* | */, 0 /* } */, 1 /* ~ */, 0 /* DEL */,
185-
- 0 /* 0x80 */, 0 /* 0x81 */, 0 /* 0x82 */, 0 /* 0x83 */,
186-
- 0 /* 0x84 */, 0 /* 0x85 */, 0 /* 0x86 */, 0 /* 0x87 */,
187-
- 0 /* 0x88 */, 0 /* 0x89 */, 0 /* 0x8a */, 0 /* 0x8b */,
188-
- 0 /* 0x8c */, 0 /* 0x8d */, 0 /* 0x8e */, 0 /* 0x8f */,
189-
- 0 /* 0x90 */, 0 /* 0x91 */, 0 /* 0x92 */, 0 /* 0x93 */,
190-
- 0 /* 0x94 */, 0 /* 0x95 */, 0 /* 0x96 */, 0 /* 0x97 */,
191-
- 0 /* 0x98 */, 0 /* 0x99 */, 0 /* 0x9a */, 0 /* 0x9b */,
192-
- 0 /* 0x9c */, 0 /* 0x9d */, 0 /* 0x9e */, 0 /* 0x9f */,
193-
- 0 /* 0xa0 */, 0 /* 0xa1 */, 0 /* 0xa2 */, 0 /* 0xa3 */,
194-
- 0 /* 0xa4 */, 0 /* 0xa5 */, 0 /* 0xa6 */, 0 /* 0xa7 */,
195-
- 0 /* 0xa8 */, 0 /* 0xa9 */, 0 /* 0xaa */, 0 /* 0xab */,
196-
- 0 /* 0xac */, 0 /* 0xad */, 0 /* 0xae */, 0 /* 0xaf */,
197-
- 0 /* 0xb0 */, 0 /* 0xb1 */, 0 /* 0xb2 */, 0 /* 0xb3 */,
198-
- 0 /* 0xb4 */, 0 /* 0xb5 */, 0 /* 0xb6 */, 0 /* 0xb7 */,
199-
- 0 /* 0xb8 */, 0 /* 0xb9 */, 0 /* 0xba */, 0 /* 0xbb */,
200-
- 0 /* 0xbc */, 0 /* 0xbd */, 0 /* 0xbe */, 0 /* 0xbf */,
201-
- 0 /* 0xc0 */, 0 /* 0xc1 */, 0 /* 0xc2 */, 0 /* 0xc3 */,
202-
- 0 /* 0xc4 */, 0 /* 0xc5 */, 0 /* 0xc6 */, 0 /* 0xc7 */,
203-
- 0 /* 0xc8 */, 0 /* 0xc9 */, 0 /* 0xca */, 0 /* 0xcb */,
204-
- 0 /* 0xcc */, 0 /* 0xcd */, 0 /* 0xce */, 0 /* 0xcf */,
205-
- 0 /* 0xd0 */, 0 /* 0xd1 */, 0 /* 0xd2 */, 0 /* 0xd3 */,
206-
- 0 /* 0xd4 */, 0 /* 0xd5 */, 0 /* 0xd6 */, 0 /* 0xd7 */,
207-
- 0 /* 0xd8 */, 0 /* 0xd9 */, 0 /* 0xda */, 0 /* 0xdb */,
208-
- 0 /* 0xdc */, 0 /* 0xdd */, 0 /* 0xde */, 0 /* 0xdf */,
209-
- 0 /* 0xe0 */, 0 /* 0xe1 */, 0 /* 0xe2 */, 0 /* 0xe3 */,
210-
- 0 /* 0xe4 */, 0 /* 0xe5 */, 0 /* 0xe6 */, 0 /* 0xe7 */,
211-
- 0 /* 0xe8 */, 0 /* 0xe9 */, 0 /* 0xea */, 0 /* 0xeb */,
212-
- 0 /* 0xec */, 0 /* 0xed */, 0 /* 0xee */, 0 /* 0xef */,
213-
- 0 /* 0xf0 */, 0 /* 0xf1 */, 0 /* 0xf2 */, 0 /* 0xf3 */,
214-
- 0 /* 0xf4 */, 0 /* 0xf5 */, 0 /* 0xf6 */, 0 /* 0xf7 */,
215-
- 0 /* 0xf8 */, 0 /* 0xf9 */, 0 /* 0xfa */, 0 /* 0xfb */,
216-
- 0 /* 0xfc */, 0 /* 0xfd */, 0 /* 0xfe */, 0 /* 0xff */
217-
-};
218-
-
219-
-static int check_authority(const uint8_t *value, size_t len) {
220-
- const uint8_t *last;
221-
- for (last = value + len; value != last; ++value) {
222-
- if (!VALID_AUTHORITY_CHARS[*value]) {
223-
- return 0;
224-
- }
225-
- }
226-
- return 1;
227-
-}
228-
-
229-
static int check_scheme(const uint8_t *value, size_t len) {
230-
const uint8_t *last;
231-
if (len == 0) {
232-
@@ -440,7 +362,7 @@ int nghttp2_http_on_header(nghttp2_session *session, nghttp2_stream *stream,
233-
234-
if (nv->token == NGHTTP2_TOKEN__AUTHORITY ||
235-
nv->token == NGHTTP2_TOKEN_HOST) {
236-
- rv = check_authority(nv->value->base, nv->value->len);
237-
+ rv = nghttp2_check_authority(nv->value->base, nv->value->len);
238-
} else if (nv->token == NGHTTP2_TOKEN__SCHEME) {
239-
rv = check_scheme(nv->value->base, nv->value->len);
240-
} else {

bazel/repository_locations.bzl

+3-3
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,9 @@ REPOSITORY_LOCATIONS = dict(
118118
urls = ["https://github.com/nanopb/nanopb/archive/0.3.9.4.tar.gz"],
119119
),
120120
com_github_nghttp2_nghttp2 = dict(
121-
sha256 = "25b623cd04dc6a863ca3b34ed6247844effe1aa5458229590b3f56a6d53cd692",
122-
strip_prefix = "nghttp2-1.39.1",
123-
urls = ["https://github.com/nghttp2/nghttp2/releases/download/v1.39.1/nghttp2-1.39.1.tar.gz"],
121+
sha256 = "eacc6f0f8543583ecd659faf0a3f906ed03826f1d4157b536b4b385fe47c5bb8",
122+
strip_prefix = "nghttp2-1.41.0",
123+
urls = ["https://github.com/nghttp2/nghttp2/releases/download/v1.41.0/nghttp2-1.41.0.tar.gz"],
124124
),
125125
io_opentracing_cpp = dict(
126126
sha256 = "015c4187f7a6426a2b5196f0ccd982aa87f010cf61f507ae3ce5c90523f92301",

source/common/http/http2/codec_impl.cc

+7
Original file line numberDiff line numberDiff line change
@@ -1066,6 +1066,13 @@ ConnectionImpl::Http2Options::Http2Options(const Http2Settings& http2_settings)
10661066
if (http2_settings.allow_metadata_) {
10671067
nghttp2_option_set_user_recv_extension_type(options_, METADATA_FRAME_TYPE);
10681068
}
1069+
1070+
// nghttp2 v1.39.2 lowered the internal flood protection limit from 10K to 1K of ACK frames. This
1071+
// new limit may cause the internal nghttp2 mitigation to trigger more often (as it requires just
1072+
// 9K of incoming bytes for smallest 9 byte SETTINGS frame), bypassing the same mitigation and its
1073+
// associated behavior in the envoy HTTP/2 codec. Since envoy does not rely on this mitigation,
1074+
// set back to the old 10K number to avoid any changes in the HTTP/2 codec behavior.
1075+
nghttp2_option_set_max_outbound_ack(options_, 10000);
10691076
}
10701077

10711078
ConnectionImpl::Http2Options::~Http2Options() { nghttp2_option_del(options_); }

test/integration/http2_integration_test.cc

+10-7
Original file line numberDiff line numberDiff line change
@@ -1440,16 +1440,19 @@ const int64_t TransmitThreshold = 100 * 1024 * 1024;
14401440
} // namespace
14411441

14421442
void Http2FloodMitigationTest::setNetworkConnectionBufferSize() {
1443-
// nghttp2 library has its own internal mitigation for outbound control frames. The mitigation is
1444-
// triggered when there are more than 10000 PING or SETTINGS frames with ACK flag in the nghttp2
1445-
// internal outbound queue. It is possible to trigger this mitigation in nghttp2 before triggering
1446-
// Envoy's own flood mitigation. This can happen when a buffer larger enough to contain over 10K
1447-
// PING or SETTINGS frames is dispatched to the nghttp2 library. To prevent this from happening
1448-
// the network connection receive buffer needs to be smaller than 90Kb (which is 10K SETTINGS
1449-
// frames). Set it to the arbitrarily chosen value of 32K.
1443+
// nghttp2 library has its own internal mitigation for outbound control frames (see
1444+
// NGHTTP2_DEFAULT_MAX_OBQ_FLOOD_ITEM). The default nghttp2 mitigation threshold of 1K is modified
1445+
// to 10K in the ConnectionImpl::Http2Options::Http2Options. The mitigation is triggered when
1446+
// there are more than 10000 PING or SETTINGS frames with ACK flag in the nghttp2 internal
1447+
// outbound queue. It is possible to trigger this mitigation in nghttp2 before triggering Envoy's
1448+
// own flood mitigation. This can happen when a buffer large enough to contain over 10K PING or
1449+
// SETTINGS frames is dispatched to the nghttp2 library. To prevent this from happening the
1450+
// network connection receive buffer needs to be smaller than 90Kb (which is 10K SETTINGS frames).
1451+
// Set it to the arbitrarily chosen value of 32K. Note that this buffer has 16K lower bound.
14501452
config_helper_.addConfigModifier([](envoy::config::bootstrap::v2::Bootstrap& bootstrap) -> void {
14511453
RELEASE_ASSERT(bootstrap.mutable_static_resources()->listeners_size() >= 1, "");
14521454
auto* listener = bootstrap.mutable_static_resources()->mutable_listeners(0);
1455+
14531456
listener->mutable_per_connection_buffer_limit_bytes()->set_value(32 * 1024);
14541457
});
14551458
}

tools/spelling_dictionary.txt

+1
Original file line numberDiff line numberDiff line change
@@ -1123,3 +1123,4 @@ zag
11231123
zig
11241124
zipkin
11251125
zlib
1126+
OBQ

0 commit comments

Comments
 (0)