kumquat-buildroot/package/network-manager/0001-connectivity-make-curl-timeout-callback-non-repeating.patch
Christian Hitz b660402b57 package/network-manager: add patch for compatibility with curl 8.4
This upstream patch restores the connectivity check functionality with
libcurl 8.4.

Fixes: https://bugs.busybox.net/show_bug.cgi?id=15835

Signed-off-by: Christian Hitz <christian.hitz@bbv.ch>
Reviewed-by: Marcus Hoffmann <marcus.hoffmann@othermo.de>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2023-11-07 22:54:53 +01:00

45 lines
1.6 KiB
Diff

From abc6e1cf258ab332bed161036a358bbe9c2d1e90 Mon Sep 17 00:00:00 2001
From: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Date: Fri, 13 Oct 2023 16:46:09 +0000
Subject: [PATCH] connectivity: Make curl timeout callback non-repeating.
This reverts commit 05c31da4d9.
In the linked commit the callback was made repeating on the assumption
that forward progress would result in the callback getting canceled in
cb_data_complete. However, this assumption does not hold since a timeout
callback does not guarantee completion (or error out) of a request.
curl tweaked some internals in v8.4.0 and started giving 0 timeouts, and
a repeating callback is firing back-to-back without making any progress
in doing so.
Revert the change and make the callback non-repeating again.
Fixes: 05c31da4d9cb ('connectivity: don't cancel curl timerfunction from timeout')
Upstream: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/abc6e1cf258ab332bed161036a358bbe9c2d1e90
Signed-off-by: Christian Hitz <christian.hitz@bbv.ch>
---
src/core/nm-connectivity.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/core/nm-connectivity.c b/src/core/nm-connectivity.c
index 92de44f17d..d8b0004c38 100644
--- a/src/core/nm-connectivity.c
+++ b/src/core/nm-connectivity.c
@@ -406,9 +406,10 @@ _con_curl_timeout_cb(gpointer user_data)
{
NMConnectivityCheckHandle *cb_data = user_data;
+ cb_data->concheck.curl_timer = 0;
_con_curl_check_connectivity(cb_data->concheck.curl_mhandle, CURL_SOCKET_TIMEOUT, 0);
_complete_queued(cb_data->self);
- return G_SOURCE_CONTINUE;
+ return G_SOURCE_REMOVE;
}
static int
--
GitLab