mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 14:23:30 +01:00
Use download_status_get_next_attempt_at() more often
This guards against future occurrences of 17750.
This commit is contained in:
parent
f813b05202
commit
344f5a71c5
@ -3983,14 +3983,16 @@ download_status_increment_failure(download_status_t *dls, int status_code,
|
|||||||
|
|
||||||
download_status_log_helper(item, !dls->increment_on, "failed",
|
download_status_log_helper(item, !dls->increment_on, "failed",
|
||||||
"concurrently", dls->n_download_failures,
|
"concurrently", dls->n_download_failures,
|
||||||
increment, dls->next_attempt_at, now);
|
increment,
|
||||||
|
download_status_get_next_attempt_at(dls),
|
||||||
|
now);
|
||||||
|
|
||||||
if (dls->increment_on == DL_SCHED_INCREMENT_ATTEMPT) {
|
if (dls->increment_on == DL_SCHED_INCREMENT_ATTEMPT) {
|
||||||
/* stop this schedule retrying on failure, it will launch concurrent
|
/* stop this schedule retrying on failure, it will launch concurrent
|
||||||
* connections instead */
|
* connections instead */
|
||||||
return TIME_MAX;
|
return TIME_MAX;
|
||||||
} else {
|
} else {
|
||||||
return dls->next_attempt_at;
|
return download_status_get_next_attempt_at(dls);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4034,9 +4036,10 @@ download_status_increment_attempt(download_status_t *dls, const char *item,
|
|||||||
|
|
||||||
download_status_log_helper(item, dls->increment_on, "attempted",
|
download_status_log_helper(item, dls->increment_on, "attempted",
|
||||||
"on failure", dls->n_download_attempts,
|
"on failure", dls->n_download_attempts,
|
||||||
delay, dls->next_attempt_at, now);
|
delay, download_status_get_next_attempt_at(dls),
|
||||||
|
now);
|
||||||
|
|
||||||
return dls->next_attempt_at;
|
return download_status_get_next_attempt_at(dls);
|
||||||
}
|
}
|
||||||
|
|
||||||
static time_t
|
static time_t
|
||||||
|
@ -108,6 +108,8 @@ time_t download_status_increment_attempt(download_status_t *dls,
|
|||||||
void download_status_reset(download_status_t *dls);
|
void download_status_reset(download_status_t *dls);
|
||||||
static int download_status_is_ready(download_status_t *dls, time_t now,
|
static int download_status_is_ready(download_status_t *dls, time_t now,
|
||||||
int max_failures);
|
int max_failures);
|
||||||
|
time_t download_status_get_next_attempt_at(const download_status_t *dls);
|
||||||
|
|
||||||
/** Return true iff, as of <b>now</b>, the resource tracked by <b>dls</b> is
|
/** Return true iff, as of <b>now</b>, the resource tracked by <b>dls</b> is
|
||||||
* ready to get its download reattempted. */
|
* ready to get its download reattempted. */
|
||||||
static inline int
|
static inline int
|
||||||
@ -127,7 +129,7 @@ download_status_is_ready(download_status_t *dls, time_t now,
|
|||||||
if (!under_failure_limit)
|
if (!under_failure_limit)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return dls->next_attempt_at <= now;
|
return download_status_get_next_attempt_at(dls) <= now;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void download_status_mark_impossible(download_status_t *dl);
|
static void download_status_mark_impossible(download_status_t *dl);
|
||||||
@ -141,7 +143,6 @@ download_status_mark_impossible(download_status_t *dl)
|
|||||||
|
|
||||||
int download_status_get_n_failures(const download_status_t *dls);
|
int download_status_get_n_failures(const download_status_t *dls);
|
||||||
int download_status_get_n_attempts(const download_status_t *dls);
|
int download_status_get_n_attempts(const download_status_t *dls);
|
||||||
time_t download_status_get_next_attempt_at(const download_status_t *dls);
|
|
||||||
|
|
||||||
/* Yes, these two functions are confusingly similar.
|
/* Yes, these two functions are confusingly similar.
|
||||||
* Let's sort that out in #20077. */
|
* Let's sort that out in #20077. */
|
||||||
|
Loading…
Reference in New Issue
Block a user