mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-11 19:55:52 +02:00
43 lines
1.3 KiB
Perl
43 lines
1.3 KiB
Perl
#!/usr/bin/perl
|
|
|
|
use strict;
|
|
use LWP::UserAgent;
|
|
require "CONFIG_ROOT/general-functions.pl";
|
|
|
|
my @this;
|
|
my $return = &downloadlist();
|
|
if($return && $return->is_success) {
|
|
unless(open(LIST, ">CONFIG_ROOT/patches/available")) {
|
|
die "Could not open available lists database.";
|
|
}
|
|
flock LIST, 2;
|
|
@this = split(/----START LIST----\n/,$return->content);
|
|
print LIST $this[1];
|
|
close(LIST);
|
|
} else {
|
|
die "Could not download patches list.";
|
|
}
|
|
|
|
sub downloadlist {
|
|
unless(-e "CONFIG_ROOT/red/active") {
|
|
die "Not connected.";
|
|
}
|
|
|
|
my $downloader = LWP::UserAgent->new;
|
|
$downloader->timeout(5);
|
|
|
|
my %proxysettings;
|
|
&General::readhash("CONFIG_ROOT/proxy/settings", \%proxysettings);
|
|
|
|
if ($_=$proxysettings{'UPSTREAM_PROXY'}) {
|
|
my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);
|
|
if ($proxysettings{'UPSTREAM_USER'}) {
|
|
$downloader->proxy("http","http://$proxysettings{'UPSTREAM_USER'}:$proxysettings{'UPSTREAM_PASSWORD'}@"."$peer:$peerport/");
|
|
} else {
|
|
$downloader->proxy("http","http://$peer:$peerport/");
|
|
}
|
|
}
|
|
|
|
return $downloader->get("http://www.ipcop.org/patches/${General::version}", 'Cache-Control', 'no-cache');
|
|
}
|