1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-28 13:41:15 +02:00

refactor: Extract RETRY_TIME constants in filetransfer

This commit is contained in:
Robert Hensing 2025-04-20 22:42:12 +02:00
parent 85420b8537
commit 047f2bc1af
2 changed files with 7 additions and 2 deletions

View file

@ -33,6 +33,9 @@ using namespace std::string_literals;
namespace nix { namespace nix {
const unsigned int RETRY_TIME_MS_DEFAULT = 250;
const unsigned int RETRY_TIME_MS_TOO_MANY_REQUESTS = 60000;
FileTransferSettings fileTransferSettings; FileTransferSettings fileTransferSettings;
static GlobalConfig::Register rFileTransferSettings(&fileTransferSettings); static GlobalConfig::Register rFileTransferSettings(&fileTransferSettings);
@ -453,7 +456,7 @@ struct curlFileTransfer : public FileTransfer
err = Forbidden; err = Forbidden;
} else if (httpStatus == 429) { } else if (httpStatus == 429) {
// 429 means too many requests, so we retry (with a substantially longer delay) // 429 means too many requests, so we retry (with a substantially longer delay)
retryTimeMs = 60000; retryTimeMs = RETRY_TIME_MS_TOO_MANY_REQUESTS;
} else if (httpStatus >= 400 && httpStatus < 500 && httpStatus != 408) { } else if (httpStatus >= 400 && httpStatus < 500 && httpStatus != 408) {
// Most 4xx errors are client errors and are probably not worth retrying: // Most 4xx errors are client errors and are probably not worth retrying:
// * 408 means the server timed out waiting for us, so we try again // * 408 means the server timed out waiting for us, so we try again

View file

@ -58,6 +58,8 @@ struct FileTransferSettings : Config
extern FileTransferSettings fileTransferSettings; extern FileTransferSettings fileTransferSettings;
extern const unsigned int RETRY_TIME_MS_DEFAULT;
struct FileTransferRequest struct FileTransferRequest
{ {
std::string uri; std::string uri;
@ -67,7 +69,7 @@ struct FileTransferRequest
bool head = false; bool head = false;
bool post = false; bool post = false;
size_t tries = fileTransferSettings.tries; size_t tries = fileTransferSettings.tries;
unsigned int baseRetryTimeMs = 250; unsigned int baseRetryTimeMs = RETRY_TIME_MS_DEFAULT;
ActivityId parentAct; ActivityId parentAct;
bool decompress = true; bool decompress = true;
std::optional<std::string> data; std::optional<std::string> data;