mirror of
https://github.com/nginx/nginx.git
synced 2024-12-03 21:18:59 +08:00
QUIC: do not resend empty queue when speeding up handshake.
If client acknowledged an Initial packet with CRYPTO frame and then sent another Initial packet containing duplicate CRYPTO again, this could result in resending frames off the empty send queue.
This commit is contained in:
parent
3309b1e8df
commit
f09be89a52
@ -2846,6 +2846,7 @@ ngx_quic_handle_crypto_frame(ngx_connection_t *c, ngx_quic_header_t *pkt,
|
||||
{
|
||||
uint64_t last;
|
||||
ngx_int_t rc;
|
||||
ngx_quic_send_ctx_t *ctx;
|
||||
ngx_quic_connection_t *qc;
|
||||
ngx_quic_crypto_frame_t *f;
|
||||
ngx_quic_frames_stream_t *fs;
|
||||
@ -2871,7 +2872,11 @@ ngx_quic_handle_crypto_frame(ngx_connection_t *c, ngx_quic_header_t *pkt,
|
||||
/* speeding up handshake completion */
|
||||
|
||||
if (pkt->level == ssl_encryption_initial) {
|
||||
ngx_quic_resend_frames(c, ngx_quic_get_send_ctx(qc, pkt->level));
|
||||
ctx = ngx_quic_get_send_ctx(qc, pkt->level);
|
||||
|
||||
if (!ngx_queue_empty(&ctx->sent)) {
|
||||
ngx_quic_resend_frames(c, ctx);
|
||||
}
|
||||
}
|
||||
|
||||
return NGX_OK;
|
||||
|
Loading…
Reference in New Issue
Block a user