summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2022-07-11 14:42:27 +0200
committerChristian Grothoff <christian@grothoff.org>2022-07-11 14:42:27 +0200
commit2942cbd1ba4e2f647e40a9ec6daea48550702255 (patch)
tree7e6b9f89a58aabd0f5c1db68dee6703beefe6c7c /src
parente163e198938d36df945334dd7dcff185c28919c4 (diff)
downloadanastasis-2942cbd1ba4e2f647e40a9ec6daea48550702255.tar.gz
anastasis-2942cbd1ba4e2f647e40a9ec6daea48550702255.tar.bz2
anastasis-2942cbd1ba4e2f647e40a9ec6daea48550702255.zip
-fix potential tt double-scheduling
Diffstat (limited to 'src')
-rw-r--r--src/reducer/anastasis_api_redux.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/reducer/anastasis_api_redux.c b/src/reducer/anastasis_api_redux.c
index 36386de..0535883 100644
--- a/src/reducer/anastasis_api_redux.c
+++ b/src/reducer/anastasis_api_redux.c
@@ -663,6 +663,8 @@ config_cb (void *cls,
if (MHD_HTTP_OK != http_status)
{
cr->backoff = GNUNET_TIME_STD_BACKOFF (cr->backoff);
+ GNUNET_assert (NULL == cr->tt);
+ GNUNET_assert (NULL != cr->url);
cr->tt = GNUNET_SCHEDULER_add_delayed (cr->backoff,
&retry_config,
cr);
@@ -690,6 +692,8 @@ config_request_timeout (void *cls)
cr->ec = TALER_EC_GENERIC_TIMEOUT;
notify_waiting (cr);
cr->backoff = GNUNET_TIME_STD_BACKOFF (cr->backoff);
+ GNUNET_assert (NULL == cr->tt);
+ GNUNET_assert (NULL != cr->url);
cr->tt = GNUNET_SCHEDULER_add_delayed (cr->backoff,
&retry_config,
cr);
@@ -708,6 +712,7 @@ retry_config (void *cls)
cr->co = NULL;
}
cr->timeout_at = GNUNET_TIME_relative_to_absolute (CONFIG_GENERIC_TIMEOUT);
+ GNUNET_assert (NULL == cr->tt);
cr->tt = GNUNET_SCHEDULER_add_at (cr->timeout_at,
&config_request_timeout,
cr);
@@ -774,6 +779,8 @@ check_config (struct GNUNET_TIME_Relative timeout,
if (MHD_HTTP_OK == cr->http_status)
return cr;
cr->timeout_at = GNUNET_TIME_relative_to_absolute (timeout);
+ if (NULL != cr->tt)
+ GNUNET_SCHEDULER_cancel (cr->tt);
cr->tt = GNUNET_SCHEDULER_add_at (cr->timeout_at,
&config_request_timeout,
cr);