projects
/
BackupPC.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* Commit for 2.1.0.
[BackupPC.git]
/
lib
/
BackupPC
/
CGI
/
Restore.pm
diff --git
a/lib/BackupPC/CGI/Restore.pm
b/lib/BackupPC/CGI/Restore.pm
index
2c1a285
..
8079d91
100644
(file)
--- a/
lib/BackupPC/CGI/Restore.pm
+++ b/
lib/BackupPC/CGI/Restore.pm
@@
-28,7
+28,7
@@
#
#========================================================================
#
#
#========================================================================
#
-# Version 2.1.0
beta0, released 20 Mar
2004.
+# Version 2.1.0
, released 20 Jun
2004.
#
# See http://backuppc.sourceforge.net.
#
#
# See http://backuppc.sourceforge.net.
#
@@
-87,9
+87,6
@@
EOF
if ( $badFileCnt ) {
ErrorExit($Lang->{Nice_try__but_you_can_t_put});
}
if ( $badFileCnt ) {
ErrorExit($Lang->{Nice_try__but_you_can_t_put});
}
- if ( @fileList == 1 ) {
- $pathHdr =~ s/(.*)\/.*/$1/;
- }
$pathHdr = "/" if ( $pathHdr eq "" );
if ( $In{type} != 0 && @fileList == $In{fcbMax} ) {
#
$pathHdr = "/" if ( $pathHdr eq "" );
if ( $In{type} != 0 && @fileList == $In{fcbMax} ) {
#
@@
-104,7
+101,7
@@
EOF
#
my $hostDestSel;
my @hosts;
#
my $hostDestSel;
my @hosts;
- foreach my $h ( GetUserHosts() ) {
+ foreach my $h ( GetUserHosts(
1
) ) {
my $sel = " selected" if ( $h eq $In{host} );
$hostDestSel .= "<option value=\"$h\"$sel>${EscHTML($h)}</option>";
push(@hosts, $h);
my $sel = " selected" if ( $h eq $In{host} );
$hostDestSel .= "<option value=\"$h\"$sel>${EscHTML($h)}</option>";
push(@hosts, $h);
@@
-184,14
+181,15
@@
EOF
# This is necessary to ensure the output gets to the correct place
# under mod_perl.
#
# This is necessary to ensure the output gets to the correct place
# under mod_perl.
#
- $bpc->cmdSystemOrEval(["$BinDir/BackupPC_tarCreate",
+ $bpc->cmdSystemOrEval
Long
(["$BinDir/BackupPC_tarCreate",
"-h", $host,
"-n", $num,
"-s", $share,
@pathOpts,
@fileList
],
"-h", $host,
"-n", $num,
"-s", $share,
@pathOpts,
@fileList
],
- sub { print(@_); }
+ sub { print(@_); },
+ 1, # ignore stderr
);
} elsif ( $In{type} == 2 ) {
#
);
} elsif ( $In{type} == 2 ) {
#
@@
-221,7
+219,7
@@
EOF
# This is necessary to ensure the output gets to the correct place
# under mod_perl.
#
# This is necessary to ensure the output gets to the correct place
# under mod_perl.
#
- $bpc->cmdSystemOrEval(["$BinDir/BackupPC_zipCreate",
+ $bpc->cmdSystemOrEval
Long
(["$BinDir/BackupPC_zipCreate",
"-h", $host,
"-n", $num,
"-c", $In{compressLevel},
"-h", $host,
"-n", $num,
"-c", $In{compressLevel},
@@
-229,7
+227,8
@@
EOF
@pathOpts,
@fileList
],
@pathOpts,
@fileList
],
- sub { print(@_); }
+ sub { print(@_); },
+ 1, # ignore stderr
);
} elsif ( $In{type} == 3 ) {
#
);
} elsif ( $In{type} == 3 ) {
#
@@
-265,7
+264,8
@@
EOF
my $targetFile = $f;
(my $strippedShare = $share) =~ s/^\///;
(my $strippedShareDest = $In{shareDest}) =~ s/^\///;
my $targetFile = $f;
(my $strippedShare = $share) =~ s/^\///;
(my $strippedShareDest = $In{shareDest}) =~ s/^\///;
- substr($targetFile, 0, length($pathHdr)) = $In{pathHdr};
+ substr($targetFile, 0, length($pathHdr)) = "/$In{pathHdr}/";
+ $targetFile =~ s{//+}{/}g;
$fileListStr .= <<EOF;
<tr><td>$host:/$strippedShare$f</td><td>$In{hostDest}:/$strippedShareDest$targetFile</td></tr>
EOF
$fileListStr .= <<EOF;
<tr><td>$host:/$strippedShare$f</td><td>$In{hostDest}:/$strippedShareDest$targetFile</td></tr>
EOF
@@
-293,6
+293,9
@@
EOF
$reqFileName = "restoreReq.$$.$i";
last if ( !-f "$TopDir/pc/$hostDest/$reqFileName" );
}
$reqFileName = "restoreReq.$$.$i";
last if ( !-f "$TopDir/pc/$hostDest/$reqFileName" );
}
+ my $inPathHdr = $In{pathHdr};
+ $inPathHdr = "/$inPathHdr" if ( $inPathHdr !~ m{^/} );
+ $inPathHdr = "$inPathHdr/" if ( $inPathHdr !~ m{/$} );
my %restoreReq = (
# source of restore is hostSrc, #num, path shareSrc/pathHdrSrc
num => $In{num},
my %restoreReq = (
# source of restore is hostSrc, #num, path shareSrc/pathHdrSrc
num => $In{num},
@@
-303,7
+306,7
@@
EOF
# destination of restore is hostDest:shareDest/pathHdrDest
hostDest => $hostDest,
shareDest => $In{shareDest},
# destination of restore is hostDest:shareDest/pathHdrDest
hostDest => $hostDest,
shareDest => $In{shareDest},
- pathHdrDest => $
In{pathHdr}
,
+ pathHdrDest => $
inPathHdr
,
# list of files to restore
fileList => \@fileList,
# list of files to restore
fileList => \@fileList,