From: Hugo Landau Date: Tue, 24 Oct 2023 06:59:36 +0000 (+0100) Subject: QUIC CHANNEL: Handle ping deadlines differently X-Git-Tag: openssl-3.2.0-beta1~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c7ed5e4697a71012e0a2d9dd5eaf997754ae5156;p=thirdparty%2Fopenssl.git QUIC CHANNEL: Handle ping deadlines differently Reviewed-by: Tomas Mraz Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/22476) --- diff --git a/ssl/quic/quic_channel.c b/ssl/quic/quic_channel.c index 28ccf66313d..57601ceed1f 100644 --- a/ssl/quic/quic_channel.c +++ b/ssl/quic/quic_channel.c @@ -1951,6 +1951,15 @@ static void ch_tick(QUIC_TICK_RESULT *res, void *arg, uint32_t flags) int pn_space = ossl_quic_enc_level_to_pn_space(ch->tx_enc_level); ossl_quic_tx_packetiser_schedule_ack_eliciting(ch->txp, pn_space); + + /* + * If we have no CC budget at this time we cannot process the above + * PING request immediately. In any case we have scheduled the + * request so bump the ping deadline. If we don't do this we will + * busy-loop endlessly as the above deadline comparison condition + * will still be met. + */ + ch_update_ping_deadline(ch); } /* Write any data to the network due to be sent. */