mirror of
https://github.com/nginx/nginx.git
synced 2025-07-31 18:46:15 +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;
|
ssize_t flen;
|
||||||
ngx_str_t res;
|
ngx_str_t res;
|
||||||
ngx_int_t rc;
|
ngx_int_t rc;
|
||||||
ngx_uint_t nframes, expand;
|
ngx_uint_t nframes;
|
||||||
ngx_msec_t now;
|
ngx_msec_t now;
|
||||||
ngx_queue_t *q;
|
ngx_queue_t *q;
|
||||||
ngx_quic_frame_t *f;
|
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;
|
nframes = 0;
|
||||||
p = src;
|
p = src;
|
||||||
len = 0;
|
len = 0;
|
||||||
expand = 0;
|
|
||||||
|
|
||||||
for (q = ngx_queue_head(&ctx->frames);
|
for (q = ngx_queue_head(&ctx->frames);
|
||||||
q != ngx_queue_sentinel(&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);
|
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) {
|
if (len >= max_payload) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user