#
# This code is distributed under the terms of the GPL
#
-# (c) 2006-2008 marco.s - http://update-accelerator.advproxy.net
+# (c) 2006-2009 marco.s - http://update-accelerator.advproxy.net
#
-# $Id: updxlrator,v 2.0 2008/04/06 00:00:00 marco.s Exp $
+# Portions (c) 2008 by dotzball - http://www.blockouttraffic.de
+#
+# $Id: updxlrator,v 2.1 2009/01/10 00:00:00 marco.s Exp $
+#
+# ChangeLog:
+#
+# 2012-10-26: nightshift - move curly bracket to capture AVG download source.
+# - Adding BIG HINT for new update source#
#
use strict;
my $updcachedir="/var/updatecache";
my $apphome="/var/ipfire/updatexlrator";
my $logfile="/var/log/updatexlrator/cache.log";
-my $wget="$apphome/bin/wget";
+my $wget="/usr/bin/wget";
my $debug=(-e "$apphome/debug");
my $http_port='81';
my %netsettings=();
}
if (!$maxusage) { $maxusage=75; };
+# dotzball: check for dead downloads
+system("$apphome/bin/checkdeaddl &");
while (<>) {
$username = $tmp[2]; if ($username eq '') { $username='-'; };
$method = $tmp[3];
- $xlrator_url = $source_url;
+ $xlrator_url = "";
if (($method eq 'GET') || ($method eq 'HEAD'))
{
# -----------------------------------------------------------
if (
- (($source_url =~ m@^http://[^/]*\.microsoft\.com/.*\.(exe|psf|msi|msp|cab)$@i) ||
- ($source_url =~ m@^http://[^/]*\.windowsupdate\.com/.*\.(exe|psf|msi|msp|cab)$@i))
+ (($source_url =~ m@^http://[^/]*\.microsoft\.com/.*\.(exe|psf|msi|msp|msu|cab)$@i) ||
+ ($source_url =~ m@^http://[^/]*\.windowsupdate\.com/.*\.(exe|psf|msi|msp|msu|cab)$@i))
&& ($source_url !~ m@^http://[^/]*\.microsoft\.com/.*(/autoupd|selfupdate/).*\.cab@i)
&& ($source_url !~ m@\&@)
)
# Section: Adobe Downloads
# -----------------------------------------------------------
+
if (
($source_url =~ m@^http://(ar)?download\.adobe\.com/.*\.(exe|msi|bin|dmg|idx|gz)$@i) ||
($source_url =~ m@^http://swupdl\.adobe\.com/updates/.*\.(exe|msi|bin|dmg|idx|gz|[a-z][a-z]_[A-Z][A-Z])$@i) ||
# Section: Linux Downloads
# -----------------------------------------------------------
- if ($source_url =~ m@^[h|f]t?tp://[^?]+\.(deb|rpm)$@i)
+ if (
+ ($source_url =~ m@^[h|f]t?tp://[^?]+\.(pkg\.tar\.xz|deb|rpm)$@i) ||
+ ($source_url =~ m@^[h|f]t?tp://[^?]+/distfiles/[^?]+\.(tar\.gz|tar\.bz2|tar\.xz|tgz|zip|patch\.bz2|gz|docx|patch|pdf|exe)$@i)
+ )
{
$xlrator_url = &check_cache($source_url,$hostaddr,$username,"Linux",$mirror);
}
# -----------------------------------------------------------
if (
- (($source_url =~ m@^http://swcdn\.apple\.com/content/downloads/.*\.(tar)$@i) ||
+ (($source_url =~ m@^http://swcdn\.apple\.com/content/downloads/.*\.(tar|pkg)$@i) ||
($source_url =~ m@^http://appldnld\.apple\.com\.edgesuite\.net/.*\.(exe|dmg)$@i) ||
($source_url =~ m@^http://.*\.g.akamai.net/.*/3093/1/.*\.(tar|pkg|dmg|exe)$@i))
)
# Section: Avast Downloads
# -----------------------------------------------------------
- if ($source_url =~ m@^http://download[\d]+\.avast\.com/.*\.(exe|vpu)$@i)
+ if ($source_url =~ m@^http://(ion|download)[\d]+\.avast\.com/.*\.(exe|vpu|vpx)$@i)
{
$xlrator_url = &check_cache($source_url,$hostaddr,$username,"Avast",$mirror);
}
+ # -----------------------------------------------------------
+ # Section: Mozilla Downloads
+ # -----------------------------------------------------------
+
+ if ($source_url=~ m@^http://.*\.mozilla\.net/.*\.((complete|partial)\.mar|exe)$@i)
+ {
+ $xlrator_url = &check_cache($source_url,$hostaddr,$username,"Mozilla",$unique);
+ }
+
# -----------------------------------------------------------
+ # Section: Mcafee
+ # -----------------------------------------------------------
+
+ if ($source_url =~ m@^http://update\.nai\.com/.*\.(mcs|z|gem|dat|zip)$@i)
+ {
+ $xlrator_url = &check_cache($source_url,$hostaddr,$username,"mcafee",$mirror);
+ }
# -----------------------------------------------------------
# Section: Avira Downloads
# -----------------------------------------------------------
- if ($source_url =~ m@^http://dl[0-9]\.avgate\.net/.*\.(htm|html|gz)$@i)
+ if (
+ ($source_url =~ m@^http://dl[0-9]\.avgate\.net/.*\.(htm|html|gz)$@i) ||
+ ($source_url =~ m@^http://80.190.130.19[4-5]/update/.*\.(htm|html|gz)$@i) ||
+ ($source_url =~ m@^http://62.146.64.14[6-7]/update/.*\.(htm|html|gz)$@i)
+ )
{
$xlrator_url = &check_cache($source_url,$hostaddr,$username,"Avira",$mirror);
}
$xlrator_url = &check_cache($source_url,$hostaddr,$username,"IPFire",$mirror);
}
- }
-
# -----------------------------------------------------------
# Section: AVG Downloads
# -----------------------------------------------------------
- if ($source_url =~ m@^http://[^/]*\.(grisoft|avg)\.com/.*\.(bin)$@i)
- {
- $xlrator_url = &check_cache($source_url,$hostaddr,$username,"AVG",$mirror);
- }
+# if ($source_url =~ m@^http://[^/]*\.(grisoft|avg)\.com/.*\.(bin)$@i)
+# {
+# $xlrator_url = &check_cache($source_url,$hostaddr,$username,"AVG",$mirror);
+# }
- $request="$xlrator_url $hostaddr $username $method\n";
+# ----------- ADD NEW SOURCES BEFORE THIS LINE !!! ------------------
+ }
- print $request;
+ if ($xlrator_url) {
+ print "OK rewrite-url=\"$xlrator_url\"\n";
+ } else {
+ print "ERR\n";
+ }
}
# -------------------------------------------------------------------
&debuglog("File exists in cache and is up to date");
&debuglog("Retrieving file from cache ($updsource)");
&setcachestatus("$updcachedir/$vendorid/$uuid/access.log",time);
- system("$apphome/bin/setperms $vendorid/$uuid/access.log");
$cacheurl="http://$netsettings{'GREEN_ADDRESS'}:$http_port/updatecache/$vendorid/$uuid/$updfile";
}
else