mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-27 19:23:24 +02:00
use protocol defined in server-list.db for mirror communication
For each mirror server, a protocol can be specified in the server-list.db database. However, it was not used for the actual URL query to a mirror before. This might be useful for deploy HTTPS pinning for Pakfire. If a mirror is known to support HTTPS, all queries to it will be made with this protocol. This saves some overhead if HTTPS is enforced on a mirror via 301 redirects. To enable this, the server-list.db needs to be adjusted. The second version of this patch only handles protocols HTTP and HTTPS, since we do not expect anything else here at the moment. Partially fixes #11661. Signed-off-by: Peter Müller <peter.mueller@link38.eu> Cc: Michael Tremer <michael.tremer@ipfire.org> Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
committed by
Michael Tremer
parent
9f0999325d
commit
66a0f3646a
@@ -31,6 +31,8 @@ use HTTP::Message;
|
||||
use HTTP::Request;
|
||||
use Net::Ping;
|
||||
|
||||
use Switch;
|
||||
|
||||
package Pakfire;
|
||||
|
||||
# A small color-hash :D
|
||||
@@ -172,7 +174,18 @@ sub fetchfile {
|
||||
}
|
||||
|
||||
$final_data = undef;
|
||||
my $url = "http://$host/$file";
|
||||
|
||||
my $url;
|
||||
switch ($proto) {
|
||||
case "HTTP" { $url = "http://$host/$file"; }
|
||||
case "HTTPS" { $url = "https://$host/$file"; }
|
||||
else {
|
||||
# skip all lines with unknown protocols
|
||||
logger("DOWNLOAD WARNING: Skipping Host: $host due to unknown protocol ($proto) in mirror database");
|
||||
next;
|
||||
}
|
||||
}
|
||||
|
||||
my $response;
|
||||
|
||||
unless ($bfile =~ /^counter.py\?.*/) {
|
||||
|
||||
Reference in New Issue
Block a user