mirror of
https://github.com/nginx/nginx.git
synced 2024-11-23 20:19:02 +08:00
QUIC: removed explicit packet padding for certain frames.
The frames for which the padding is removed are PATH_CHALLENGE and PATH_RESPONSE, which are sent separately by ngx_quic_frame_sendto().
This commit is contained in:
parent
3990aaaa55
commit
8ab3889073
@ -525,7 +525,7 @@ ngx_quic_output_packet(ngx_connection_t *c, ngx_quic_send_ctx_t *ctx,
|
||||
ssize_t flen;
|
||||
ngx_str_t res;
|
||||
ngx_int_t rc;
|
||||
ngx_uint_t nframes, expand;
|
||||
ngx_uint_t nframes;
|
||||
ngx_msec_t now;
|
||||
ngx_queue_t *q;
|
||||
ngx_quic_frame_t *f;
|
||||
@ -560,7 +560,6 @@ ngx_quic_output_packet(ngx_connection_t *c, ngx_quic_send_ctx_t *ctx,
|
||||
nframes = 0;
|
||||
p = src;
|
||||
len = 0;
|
||||
expand = 0;
|
||||
|
||||
for (q = ngx_queue_head(&ctx->frames);
|
||||
q != ngx_queue_sentinel(&ctx->frames);
|
||||
@ -568,33 +567,6 @@ ngx_quic_output_packet(ngx_connection_t *c, ngx_quic_send_ctx_t *ctx,
|
||||
{
|
||||
f = ngx_queue_data(q, ngx_quic_frame_t, queue);
|
||||
|
||||
if (!expand && (f->type == NGX_QUIC_FT_PATH_RESPONSE
|
||||
|| f->type == NGX_QUIC_FT_PATH_CHALLENGE))
|
||||
{
|
||||
/*
|
||||
* RFC 9000, 8.2.1. Initiating Path Validation
|
||||
*
|
||||
* An endpoint MUST expand datagrams that contain a
|
||||
* PATH_CHALLENGE frame to at least the smallest allowed
|
||||
* maximum datagram size of 1200 bytes...
|
||||
*
|
||||
* (same applies to PATH_RESPONSE frames)
|
||||
*/
|
||||
|
||||
if (max < 1200) {
|
||||
/* expanded packet will not fit */
|
||||
break;
|
||||
}
|
||||
|
||||
if (min < 1200) {
|
||||
min = 1200;
|
||||
|
||||
min_payload = ngx_quic_payload_size(&pkt, min);
|
||||
}
|
||||
|
||||
expand = 1;
|
||||
}
|
||||
|
||||
if (len >= max_payload) {
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user