Sleep for 30 minutes if api servers are out of service

This commit is contained in:
x3 2023-08-08 11:32:39 +02:00
parent bc99462436
commit 43b2249d91
Signed by: x3
GPG Key ID: 7E9961E8AD0E240E
1 changed files with 8 additions and 2 deletions

View File

@ -719,10 +719,16 @@ static enum error api_cmd_base_pref(char buffer[API_BUFSIZE], int send_len,
if (err == ERR_API_OOS || err == ERR_API_SRV_BUSY ||
err == ERR_API_TIMEOUT) {
struct timespec ts;
time_t wait_ms = API_TRYAGAIN_TIME;
MS_TO_TIMESPEC_L(ts, API_TRYAGAIN_TIME);
if (err == ERR_API_OOS) {
/* In this case, we should wait 30 minutes as per the wiki */
wait_ms = 30 * 60 * 1000;
}
MS_TO_TIMESPEC_L(ts, wait_ms);
retry_count++;
uio_debug("Retry after %ld ms (%d/%d)", API_TRYAGAIN_TIME,
uio_debug("Retry after %ld ms (%d/%d)", wait_ms,
retry_count, API_MAX_TRYAGAIN);
if (nanosleep(&ts, NULL) == -1) {
if (errno == EINTR && should_exit) {