diff --git a/include/config.h b/include/config.h index 9fdd89d..2bf55f1 100644 --- a/include/config.h +++ b/include/config.h @@ -52,6 +52,7 @@ class Config unsigned int iInstallerType; unsigned int iInstallerLanguage; int iRetries; + int iWait; size_t iChunkSize; curl_off_t iDownloadRate; long int iTimeout; diff --git a/main.cpp b/main.cpp index 6d13f00..5ab64ea 100644 --- a/main.cpp +++ b/main.cpp @@ -154,6 +154,7 @@ int main(int argc, char *argv[]) ("insecure", bpo::value(&bInsecure)->zero_tokens()->default_value(false), "Don't verify authenticity of SSL certificates") ("timeout", bpo::value(&config.iTimeout)->default_value(10), "Set timeout for connection\nMaximum time in seconds that connection phase is allowed to take") ("retries", bpo::value(&config.iRetries)->default_value(3), "Set maximum number of retries on failed download") + ("wait", bpo::value(&config.iWait)->default_value(0), "Time to wait between requests (milliseconds)") ; // Options read from config file options_cfg_only.add_options() @@ -206,6 +207,9 @@ int main(int argc, char *argv[]) if (config.sOrphanRegex.empty()) config.sOrphanRegex = orphans_regex_default; + if (config.iWait > 0) + config.iWait *= 1000; + config.bVerifyPeer = !bInsecure; config.bColor = !bNoColor; config.bUnicode = !bNoUnicode; diff --git a/src/downloader.cpp b/src/downloader.cpp index 0bc97a7..4c76341 100644 --- a/src/downloader.cpp +++ b/src/downloader.cpp @@ -1402,6 +1402,7 @@ std::string Downloader::getResponse(const std::string& url) CURLcode result; do { + usleep(config.iWait); // Delay the request by specified time result = curl_easy_perform(curlhandle); response = memory.str(); memory.str(std::string());