Hello,
What is the rationale for five attempts? Why not three?
-Michael
On 23 Mar 2022, at 04:04, Stefan Schantl stefan.schantl@ipfire.org wrote:
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
config/cfgroot/ids-functions.pl | 38 ++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 10 deletions(-)
diff --git a/config/cfgroot/ids-functions.pl b/config/cfgroot/ids-functions.pl index eb276030b..c8bc52b1b 100644 --- a/config/cfgroot/ids-functions.pl +++ b/config/cfgroot/ids-functions.pl @@ -256,6 +256,10 @@ sub downloadruleset ($) { # If no provider is given default to "all". $provider //= 'all';
- # The amount of download attempts before giving up and
- # logging an error.
- my $max_dl_attempts = 5;
- # Hash to store the providers and access id's, for which rules should be downloaded. my %sheduled_providers = ();
@@ -364,19 +368,33 @@ sub downloadruleset ($) { # Pass the requested url to the downloader. my $request = HTTP::Request->new(GET => $url);
# Perform the request and save the output into the tmpfile.
my $response = $downloader->request($request, $tmpfile);
my $dl_attempt = 1;
my $response;
# Check if there was any error.
unless ($response->is_success) {
# Obtain error.
my $error = $response->content;
# Download and retry on failure.
while ($dl_attempt <= $max_dl_attempts) {
# Perform the request and save the output into the tmpfile.
$response = $downloader->request($request, $tmpfile);
# Log error message.
&_log_to_syslog("Unable to download the ruleset. \($error\)");
# Check if the download was successfull.
if($response->is_success) {
# Break loop.
last;
# Return "1" - false.
return 1;
# Check if we ran out of download re-tries.
} elsif ($dl_attempt eq $max_dl_attempts) {
# Obtain error.
my $error = $response->content;
# Log error message.
&_log_to_syslog("Unable to download the ruleset. \($error\)");
# Return "1" - false.
return 1;
}
# Increase download attempt counter.
$dl_attempt++;
}
# Obtain the connection headers.
-- 2.30.2