From ec18a1ecae60c6c3b6418e300aebd6a823844c8d Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Thu, 14 Oct 2021 19:01:49 +0000 Subject: [PATCH] pakfire: Allow pinning Pakfire to one mirror server This patch adds a new $mirror option to the configuration file which will cause Pakfire to only use this one to download any files. This feature is disabled by default but useful for development. Fixes: #12706 Signed-off-by: Michael Tremer Signed-off-by: Arne Fitzenreiter --- src/pakfire/lib/functions.pl | 12 ++++++++++++ src/pakfire/pakfire.conf | 3 +++ 2 files changed, 15 insertions(+) diff --git a/src/pakfire/lib/functions.pl b/src/pakfire/lib/functions.pl index f46c9acc13..4d9854a6fd 100644 --- a/src/pakfire/lib/functions.pl +++ b/src/pakfire/lib/functions.pl @@ -30,6 +30,7 @@ use HTTP::Headers; use HTTP::Message; use HTTP::Request; use Net::Ping; +use URI; use Switch; @@ -297,6 +298,17 @@ sub valid_signature($) { } sub selectmirror { + if (defined ${Conf::mirror}) { + my $uri = URI->new("${Conf::mirror}"); + + # Only accept HTTPS mirrors + if ($uri->scheme eq "https") { + return ("HTTPS", $uri->host, $uri->path . "/" . ${Conf::version}); + } else { + message("MIRROR ERROR: Unsupported mirror: " . ${Conf::mirror}); + } + } + ### Check if there is a current server list and read it. # If there is no list try to get one. my $count = 0; diff --git a/src/pakfire/pakfire.conf b/src/pakfire/pakfire.conf index 9930f3771b..bc54dcff4e 100644 --- a/src/pakfire/pakfire.conf +++ b/src/pakfire/pakfire.conf @@ -23,6 +23,9 @@ package Conf; $mainserver = "pakfire.ipfire.org"; +# Only use this mirror +#$mirror = "https://mirror1.ipfire.org/pakfire2"; + $cachedir = "/opt/pakfire/cache"; $dbdir = "/opt/pakfire/db"; $coredir = "/opt/pakfire/db/core"; -- 2.39.2