| 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 |
| |