summaryrefslogtreecommitdiff
path: root/test/interactive-helper/aptwebserver.cc
diff options
context:
space:
mode:
authorFelix Moessbauer <felix.moessbauer@siemens.com>2024-11-13 15:48:43 +0100
committerFelix Moessbauer <felix.moessbauer@siemens.com>2024-11-18 13:44:49 +0100
commitcabcaf3c326408bf71a9a83f51973214fddcefb1 (patch)
tree93b78b07910e9c072ef6f2b65f361de20da4a4d8 /test/interactive-helper/aptwebserver.cc
parent7b9dea5a7c43fd91bcd23d1585d39a726d098285 (diff)
http: add test for Retry-After handling
When enabling Acquire::Retries::HandleRetryAfter, the value of the Retry-After http header is honored and the retry is not executed earlier than this point in time (except if that is longer than the max delay time). The added test checks if the request is delayed at least by the requested time. Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
Diffstat (limited to 'test/interactive-helper/aptwebserver.cc')
-rw-r--r--test/interactive-helper/aptwebserver.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/test/interactive-helper/aptwebserver.cc b/test/interactive-helper/aptwebserver.cc
index a61161512..7df4e87ac 100644
--- a/test/interactive-helper/aptwebserver.cc
+++ b/test/interactive-helper/aptwebserver.cc
@@ -773,10 +773,16 @@ static void * handleClient(int const client, size_t const id) /*{{{*/
// automatic retry can be tested with this
{
int failrequests = _config->FindI("aptwebserver::failrequest::" + filename, 0);
+ int retryafter = _config->FindI("aptwebserver::failrequest::retryafter", 0);
if (failrequests != 0)
{
--failrequests;
_config->Set(("aptwebserver::failrequest::" + filename).c_str(), failrequests);
+ if (retryafter != 0)
+ {
+ std::string retryafter_hdr = "Retry-After: " + std::to_string(retryafter);
+ headers.push_back(retryafter_hdr);
+ }
sendError(log, client, _config->FindI("aptwebserver::failrequest", 400), *m, sendContent, "Server is configured to fail this file.", headers);
continue;
}