]>
Commit | Line | Data |
---|---|---|
cd1a2927 MT |
1 | #!/usr/bin/perl\r |
2 | \r | |
3 | use strict;\r | |
4 | use LWP::UserAgent;\r | |
5 | require "CONFIG_ROOT/general-functions.pl";\r | |
6 | \r | |
7 | my @this;\r | |
8 | my $return = &downloadlist();\r | |
9 | if($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 | |
21 | sub 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 |