]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - src/scripts/updatelists.pl
HinzugefĆ¼gt:
[people/pmueller/ipfire-2.x.git] / src / scripts / updatelists.pl
CommitLineData
cd1a2927
MT
1#!/usr/bin/perl\r
2\r
3use strict;\r
4use LWP::UserAgent;\r
5require "CONFIG_ROOT/general-functions.pl";\r
6\r
7my @this;\r
8my $return = &downloadlist();\r
9if($return && $return->is_success) {\r
10 unless(open(LIST, ">CONFIG_ROOT/patches/available")) {\r
11 die "Could not open available lists database.";\r
12 }\r
13 flock LIST, 2;\r
14 @this = split(/----START LIST----\n/,$return->content);\r
15 print LIST $this[1];\r
16 close(LIST);\r
17} else {\r
18 die "Could not download patches list.";\r
19}\r
20\r
21sub downloadlist {\r
22 unless(-e "CONFIG_ROOT/red/active") {\r
23 die "Not connected.";\r
24 }\r
25\r
26 my $downloader = LWP::UserAgent->new;\r
27 $downloader->timeout(5);\r
28\r
29 my %proxysettings;\r
30 &General::readhash("CONFIG_ROOT/proxy/settings", \%proxysettings);\r
31\r
32 if ($_=$proxysettings{'UPSTREAM_PROXY'}) {\r
33 my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);\r
34 if ($proxysettings{'UPSTREAM_USER'}) {\r
35 $downloader->proxy("http","http://$proxysettings{'UPSTREAM_USER'}:$proxysettings{'UPSTREAM_PASSWORD'}@"."$peer:$peerport/");\r
36 } else {\r
37 $downloader->proxy("http","http://$peer:$peerport/");\r
38 }\r
39 }\r
40\r
41 return $downloader->get("http://www.ipcop.org/patches/${General::version}", 'Cache-Control', 'no-cache');\r
42}\r