#
#========================================================================
#
-# Version 2.1.0_CVS, released 8 Feb 2004.
+# Version 2.1.2, released 5 Sep 2005.
#
# See http://backuppc.sourceforge.net.
#
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} ) {
#
#
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);
# This is necessary to ensure the output gets to the correct place
# under mod_perl.
#
- $bpc->cmdSystemOrEval(["$BinDir/BackupPC_tarCreate",
+ $bpc->cmdSystemOrEvalLong(["$BinDir/BackupPC_tarCreate",
"-h", $host,
"-n", $num,
"-s", $share,
@pathOpts,
@fileList
],
- sub { print(@_); }
+ sub { print(@_); },
+ 1, # ignore stderr
);
} elsif ( $In{type} == 2 ) {
#
# This is necessary to ensure the output gets to the correct place
# under mod_perl.
#
- $bpc->cmdSystemOrEval(["$BinDir/BackupPC_zipCreate",
+ $bpc->cmdSystemOrEvalLong(["$BinDir/BackupPC_zipCreate",
"-h", $host,
"-n", $num,
"-c", $In{compressLevel},
@pathOpts,
@fileList
],
- sub { print(@_); }
+ sub { print(@_); },
+ 1, # ignore stderr
);
} elsif ( $In{type} == 3 ) {
#
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
$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},
# destination of restore is hostDest:shareDest/pathHdrDest
hostDest => $hostDest,
shareDest => $In{shareDest},
- pathHdrDest => $In{pathHdr},
+ pathHdrDest => $inPathHdr,
# list of files to restore
fileList => \@fileList,