From 5428eeeeaac1ecacbec2aecb9279cccd29e9c47d Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 16 Jun 2015 14:39:26 +0200 Subject: [PATCH] url-filter: Use upstream proxy when downloading blacklists Fixes #10690 Signed-off-by: Michael Tremer --- config/cfgroot/network-functions.pl | 27 +++++++++++++++++++++++++++ config/urlfilter/autoupdate.pl | 3 +++ 2 files changed, 30 insertions(+) diff --git a/config/cfgroot/network-functions.pl b/config/cfgroot/network-functions.pl index 029ffc09ee..1cd2814ec1 100644 --- a/config/cfgroot/network-functions.pl +++ b/config/cfgroot/network-functions.pl @@ -23,6 +23,8 @@ package Network; +require "/var/ipfire/general-functions.pl"; + use Socket; my %PREFIX2NETMASK = ( @@ -244,6 +246,31 @@ sub ip_address_in_network($$) { return (($address_bin ge $network_bin) && ($address_bin le $broadcast_bin)); } +sub setup_upstream_proxy() { + my %proxysettings = (); + &General::readhash("${General::swroot}/proxy/settings", \%proxysettings); + + if ($proxysettings{'UPSTREAM_PROXY'}) { + my $credentials = ""; + + if ($proxysettings{'UPSTREAM_USER'}) { + $credentials = $proxysettings{'UPSTREAM_USER'}; + + if ($proxysettings{'UPSTREAM_PASSWORD'}) { + $credentials .= ":" . $proxysettings{'UPSTREAM_PASSWORD'}; + } + + $credentials .= "@"; + } + + my $proxy = "http://" . $credentials . $proxysettings{'UPSTREAM_PROXY'}; + + $ENV{'http_proxy'} = $proxy; + $ENV{'https_proxy'} = $proxy; + $ENV{'ftp_proxy'} = $proxy; + } +} + 1; # Remove the next line to enable the testsuite diff --git a/config/urlfilter/autoupdate.pl b/config/urlfilter/autoupdate.pl index fa6ec91dd0..39b9b4f0b5 100644 --- a/config/urlfilter/autoupdate.pl +++ b/config/urlfilter/autoupdate.pl @@ -8,6 +8,8 @@ # use strict; +require "/var/ipfire/general-functions.pl"; + my $make_clean = 1; my $swroot = "/var/ipfire"; @@ -72,6 +74,7 @@ unless ($blacklist_url eq '') if (-d $target) { system("rm -rf $target"); } system("mkdir $target"); + &Network::setup_upstream_proxy(); system("/usr/bin/wget -o $target/wget.log -O $blacklist $blacklist_url"); if (-e $blacklist) -- 2.39.2