# along with this program. If not, see <http://www.gnu.org/licenses/>. #
# #
###############################################################################
+#
+# Changelog:
+# 2012-10-27: nightshift - Bugfix regarding showing wrong vendor icon while Download of new Updates
+# 2012-10-27: nightshift - Optimizing logic of check for vendor icons
+#
use strict;
my %vendorstats=();
my $repository = "/var/updatecache/";
+my $webhome = "/srv/web/ipfire/html";
my $hintcolour = '#FFFFCC';
my $colourgray = '#808080';
my @metadata=();
-my $chk_cron_dly = "${General::swroot}/updatexlrator/autocheck/cron.daily";
-my $chk_cron_wly = "${General::swroot}/updatexlrator/autocheck/cron.weekly";
-my $chk_cron_mly = "${General::swroot}/updatexlrator/autocheck/cron.monthly";
-
&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
&General::readhash("${General::swroot}/main/settings", \%mainsettings);
&General::readhash("${General::swroot}/proxy/settings", \%proxysettings);
$id = 0;
foreach $updatefile (@downloadfiles)
{
- $updatefile =~ s/.*://;
+ $updatefile =~ s/.*:download/download/;
my $size_updatefile = 0;
my $mtime = 0;
if(-e "$repository/$updatefile") {
print "<img src='/images/updbooster/updxl-led-gray.gif' alt='$Lang::tr{'updxlrtr condition suspended'}' /> </td>\n";
}
- print "\t\t<td align='center' nowrap='nowrap'> ";
- if ($vendorid =~ /^Adobe$/i)
- {
- print "<img src='/images/updbooster/updxl-src-adobe.gif' alt='Adobe'}' /> </td>\n";
- } elsif ($vendorid =~ /^Microsoft$/i)
- {
- print "<img src='/images/updbooster/updxl-src-windows.gif' alt='Microsoft'}' /> </td>\n";
- } elsif ($vendorid =~ /^Symantec$/i)
- {
- print "<img src='/images/updbooster/updxl-src-symantec.gif' alt='Symantec'}' /> </td>\n";
- } elsif ($vendorid =~ /^Linux$/i)
- {
- print "<img src='/images/updbooster/updxl-src-linux.gif' alt='Linux'}' /> </td>\n";
- } elsif ($vendorid =~ /^TrendMicro$/i)
- {
- print "<img src='/images/updbooster/updxl-src-trendmicro.gif' alt='Trend Micro'}' /> </td>\n";
- } elsif ($vendorid =~ /^Apple$/i)
- {
- print "<img src='/images/updbooster/updxl-src-apple.gif' alt='Apple'}' /> </td>\n";
- } elsif ($vendorid =~ /^Avast$/i)
- {
- print "<img src='/images/updbooster/updxl-src-avast.gif' alt='Avast'}' /> </td>\n";
- } else
- {
- if (-e "/home/httpd/html/images/updbooster/updxl-src-" . $vendorid . ".gif")
- {
- print "<img src='/images/updbooster/updxl-src-" . $vendorid . ".gif' alt='" . ucfirst $vendorid . "' /> </td>\n";
- } else {
- print "<img src='/images/updbooster/updxl-src-unknown.gif' alt='" . ucfirst $vendorid . "' /> </td>\n";
- }
- }
+ print "\t\t<td align='center' nowrap='nowrap'> ";
- $shortname = substr($updatefile,rindex($updatefile,"/")+1);
- $shortname =~ s/(.*)_[\da-f]*(\.(exe|cab|psf)$)/$1_*$2/i;
+ if (($vendorid ne '') && (-e "$webhome/images/updbooster/updxl-src-$vendorid.gif"))
+ {
+ print "<img src='/images/updbooster/updxl-src-" . $vendorid . ".gif' alt='" . ucfirst $vendorid . "' /> </td>\n";
+ } else {
+ print "<img src='/images/updbooster/updxl-src-unknown.gif' alt='" . ucfirst $vendorid . "' /> </td>\n";
+ }
- $filesize = $dlinfo{'REMOTESIZE'};
- 1 while $filesize =~ s/^(-?\d+)(\d{3})/$1.$2/;
- $dlinfo{'VENDORID'}=ucfirst $vendorid;
+ $shortname = substr($updatefile,rindex($updatefile,"/")+1);
+ $shortname =~ s/(.*)_[\da-f]*(\.(exe|cab|psf)$)/$1_*$2/i;
- print <<END
+ $filesize = $dlinfo{'REMOTESIZE'};
+ 1 while $filesize =~ s/^(-?\d+)(\d{3})/$1.$2/;
+ $dlinfo{'VENDORID'} = ucfirst $vendorid;
+
+ print <<END
<td class='base' align='center'> $dlinfo{'VENDORID'} </td>
<td class='base' align='left' title='cache:/$updatefile'>$shortname</td>
<td class='base' align='right' nowrap='nowrap'> $filesize </td>
{
next if(/\.info$/);
$updatefile = substr($_,rindex($_,"/")+1);
- $updatefile .= ":download/$vendorid/$updatefile";
+ $_ = $updatefile; tr/[A-Z]/[a-z]/;
+ $updatefile = "$_:separator:download/$vendorid/$updatefile";
$updatefile = " ".$updatefile;
push(@repositoryfiles,$updatefile);
}
chomp($sourceurl);
$updatefile = substr($sourceurl,rindex($sourceurl,'/')+1,length($sourceurl));
$_ = $updatefile; tr/[A-Z]/[a-z]/;
- $updatefile = "$_:$vendorid/$uuid/$updatefile";
+ $updatefile = "$_:separator:$vendorid/$uuid/$updatefile";
push(@repositoryfiles,$updatefile);
}
}
$id = 0;
foreach $updatefile (@files)
{
- $updatefile =~ s/.*://;
+ $updatefile =~ s/.*:separator://;
my $size_updatefile = 0;
my $mtime = 0;
if(-e "$repository/$updatefile") {
<td><img src='/images/updbooster/updxl-globe.gif' alt='$Lang::tr{'updxlrtr last checkup'}' /></td>
<td class='base'>$Lang::tr{'updxlrtr last checkup'}</td>
<td class='base'> </td>
- <td><img src='/images/updbooster/delete.gif' alt='$Lang::tr{'updxlrtr remove file'}' /></td>
+ <td><img src='/images/delete.gif' alt='$Lang::tr{'updxlrtr remove file'}' /></td>
<td class='base'>$Lang::tr{'updxlrtr remove file'}</td>
<td class='base'> </td>
<td class='base'> </td>
sub savesettings
{
- if (-e $chk_cron_dly) { unlink($chk_cron_dly); }
- if (-e $chk_cron_wly) { unlink($chk_cron_wly); }
- if (-e $chk_cron_mly) { unlink($chk_cron_mly); }
if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'daily'))
{
- symlink("../bin/checkup",$chk_cron_dly)
- } else {
- symlink("/bin/false",$chk_cron_dly)
+ system('/usr/local/bin/updxlratorctrl cron daily >/dev/null 2>&1');
}
- if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'weekly'))
+ if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'weekly'))
{
- symlink("../bin/checkup",$chk_cron_wly)
- } else {
- symlink("/bin/false",$chk_cron_wly)
+ system('/usr/local/bin/updxlratorctrl cron weekly >/dev/null 2>&1');
}
- if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'monthly'))
+ if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'monthly'))
{
- symlink("../bin/checkup",$chk_cron_mly)
- } else {
- symlink("/bin/false",$chk_cron_mly)
+ system('/usr/local/bin/updxlratorctrl cron monthly >/dev/null 2>&1');
}
# don't save those variable to the settings file,