diff options
author | Vladimir Homutov <vl@nginx.com> | 2021-07-05 13:17:10 +0300 |
---|---|---|
committer | Vladimir Homutov <vl@nginx.com> | 2021-07-05 13:17:10 +0300 |
commit | 1860eda336fce3fa6a6b1d7c81a904668c7af598 (patch) | |
tree | 0ba2fa9564371cc67e46291cfe23b65e7450c3d5 /src | |
parent | a85084fea109c019d1ad7466ed063afa7961acba (diff) | |
download | nginx-1860eda336fce3fa6a6b1d7c81a904668c7af598.tar.gz nginx-1860eda336fce3fa6a6b1d7c81a904668c7af598.zip |
QUIC: fixed padding calculation.
Sometimes, QUIC packets need to be of certain (or minimal) size. This is
achieved by adding PADDING frames. It is possible, that adding padding will
affect header size, thus forcing us to recalculate padding size once more.
Diffstat (limited to 'src')
-rw-r--r-- | src/event/quic/ngx_event_quic_output.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/event/quic/ngx_event_quic_output.c b/src/event/quic/ngx_event_quic_output.c index 26b046b14..688ae67fe 100644 --- a/src/event/quic/ngx_event_quic_output.c +++ b/src/event/quic/ngx_event_quic_output.c @@ -368,6 +368,9 @@ ngx_quic_output_packet(ngx_connection_t *c, ngx_quic_send_ctx_t *ctx, } if (out.len < pad_len) { + /* compensate for potentially enlarged header in Length bytes */ + pad_len -= ngx_quic_create_header(&pkt, NULL, pad_len, NULL) + - ngx_quic_create_header(&pkt, NULL, out.len, NULL); ngx_memset(p, NGX_QUIC_FT_PADDING, pad_len - out.len); out.len = pad_len; } |