]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
QUIC CHANNEL: Handle ping deadlines differently
authorHugo Landau <hlandau@openssl.org>
Tue, 24 Oct 2023 06:59:36 +0000 (07:59 +0100)
committerMatt Caswell <matt@openssl.org>
Wed, 25 Oct 2023 10:14:24 +0000 (11:14 +0100)
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22476)

ssl/quic/quic_channel.c

index 28ccf66313da56b7e430ba00a9d9a691dd70f878..57601ceed1f141a362c6b6b08a61a3542bf7ed08 100644 (file)
@@ -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. */