X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=html%2Fcgi-bin%2Fbackup.cgi;h=830775ddf5f99df71292a9ea74fe2ad975dc6cb8;hb=e0800c21db6316f0a41461f2e02fc7565d7c1a49;hp=0592ef82cdbd63204b98153d765d0e999f2fd23c;hpb=824a0f689e6269c178e54feeaba878078bb6a49b;p=people%2Fteissler%2Fipfire-2.x.git diff --git a/html/cgi-bin/backup.cgi b/html/cgi-bin/backup.cgi index 0592ef82c..830775ddf 100644 --- a/html/cgi-bin/backup.cgi +++ b/html/cgi-bin/backup.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2005-2013 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -35,6 +35,8 @@ my %cgiparams=(); my %checked = (); my $message = ""; my $errormessage = ""; +my @backups = ""; +my @backupisos = ""; $a = new CGI; @@ -56,12 +58,27 @@ system("/usr/local/bin/backupctrl makedirs >/dev/null 2>&1 ") unless ( -e '/var/ ############################################################################################################################ ############################################## System calls ohne Http Header ############################################### +# Replace slashes from filename +$cgiparams{'FILE'} =~ s/\///; if ( $cgiparams{'ACTION'} eq "download" ) { open(DLFILE, "; print "Content-Type:application/x-download\n"; + my @fileinfo = stat("/var/ipfire/backup/$cgiparams{'FILE'}"); + print "Content-Length:$fileinfo[7]\n"; + print "Content-Disposition:attachment;filename=$cgiparams{'FILE'}\n\n"; + print @fileholder; + exit (0); +} +if ( $cgiparams{'ACTION'} eq "downloadiso" ) +{ + open(DLFILE, "; + print "Content-Type:application/x-download\n"; + my @fileinfo = stat("/var/tmp/backupiso/$cgiparams{'FILE'}"); + print "Content-Length:$fileinfo[7]\n"; print "Content-Disposition:attachment;filename=$cgiparams{'FILE'}\n\n"; print @fileholder; exit (0); @@ -71,6 +88,8 @@ if ( $cgiparams{'ACTION'} eq "downloadaddon" ) open(DLFILE, "; print "Content-Type:application/x-download\n"; + my @fileinfo = stat("/var/ipfire/backup/addons/backup/$cgiparams{'FILE'}"); + print "Content-Length:$fileinfo[7]\n"; print "Content-Disposition:attachment;filename=$cgiparams{'FILE'}\n\n"; print @fileholder; exit (0); @@ -139,7 +158,13 @@ if ( $message ne "" ){ &Header::closebox(); } -my @backups = `cd /var/ipfire/backup/ && ls *.ipf 2>/dev/null`; +if ( -e "/var/ipfire/backup/" ){ + @backups = `cd /var/ipfire/backup/ && ls *.ipf 2>/dev/null`; +} + +if ( -e "/var/tmp/backupiso/" ){ + @backupisos = `cd /var/tmp/backupiso/ && ls *.iso 2>/dev/null`; +} &Header::openbox('100%', 'center', $Lang::tr{'backup'}); @@ -151,7 +176,13 @@ print < $Lang::tr{'include logfiles'}
$Lang::tr{'exclude logfiles'}
- $Lang::tr{'generate iso'} +END +; +my $MACHINE=`uname -m`; +if ( ! ( $MACHINE =~ "arm" )) { + print" $Lang::tr{'generate iso'}
" +} +print < @@ -174,12 +205,23 @@ print <$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $Size KB
"; +my $Size = $Info[7] / 1024 / 1024; +$Size = sprintf("%0.2f", $Size); +print "$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $Size MB
"; +print "
"; +} +foreach (@backupisos){ +if ( $_ !~ /iso$/){next;} +chomp($_); +my $Datei = "/var/tmp/backupiso/".$_; +my @Info = stat($Datei); +my $Size = $Info[7] / 1024 / 1024; +$Size = sprintf("%0.2f", $Size); +print "$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $Size MB
"; print "
"; } print <$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $Size KB $Lang::tr{'date'} ".localtime($Info[9]).""; + if ($Size < 1) { + $Size = sprintf("%.2f", $Size); + print "$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $Size KB $Lang::tr{'date'} ".localtime($Info[9]).""; + } else { + $Size = sprintf("%2d", $Size); + print "$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $Size KB $Lang::tr{'date'} ".localtime($Info[9]).""; + + } + print <
@@ -223,7 +273,7 @@ print < - + @@ -262,7 +312,7 @@ print <
- +
@@ -289,4 +339,4 @@ END ; &Header::closebox(); &Header::closebigbox(); -&Header::closepage(); +&Header::closepage(); \ No newline at end of file