From c5cec6080975dc5c90a345a3bafc0626254f0cb8 Mon Sep 17 00:00:00 2001 From: Stan Wijckmans Date: Sat, 13 Aug 2022 12:53:55 +0200 Subject: [PATCH] Apply timeout to automatic ping. (#1495) Co-authored-by: Stan Wijckmans --- Source/MQTTnet/Client/MqttClient.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Source/MQTTnet/Client/MqttClient.cs b/Source/MQTTnet/Client/MqttClient.cs index 9be1b725..fc0d299c 100644 --- a/Source/MQTTnet/Client/MqttClient.cs +++ b/Source/MQTTnet/Client/MqttClient.cs @@ -523,7 +523,11 @@ namespace MQTTnet.Client if (timeWithoutPacketSent > keepAlivePeriod) { - await PingAsync(cancellationToken).ConfigureAwait(false); + using (var timeoutCancellationTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken)) + { + timeoutCancellationTokenSource.CancelAfter(Options.Timeout); + await PingAsync(timeoutCancellationTokenSource.Token).ConfigureAwait(false); + } } // Wait a fixed time in all cases. Calculation of the remaining time is complicated -- GitLab