X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=lib%2FBackupPC%2FCGI%2FRestore.pm;h=f00ce5900924a81bce8be98cef2c332dafe1eaba;hp=2c1a28546e8eb290248c57842ea5a8d598033d97;hb=8f5625f9cdf47f8e04be654c4954838b2df3e26d;hpb=ce708288691ba7dd95a8dac7a468bc0e4c1d6588 diff --git a/lib/BackupPC/CGI/Restore.pm b/lib/BackupPC/CGI/Restore.pm index 2c1a285..f00ce59 100644 --- a/lib/BackupPC/CGI/Restore.pm +++ b/lib/BackupPC/CGI/Restore.pm @@ -104,7 +104,7 @@ EOF # my $hostDestSel; my @hosts; - foreach my $h ( GetUserHosts() ) { + foreach my $h ( GetUserHosts(1) ) { my $sel = " selected" if ( $h eq $In{host} ); $hostDestSel .= ""; push(@hosts, $h); @@ -265,7 +265,8 @@ EOF 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 .= <$host:/$strippedShare$f$In{hostDest}:/$strippedShareDest$targetFile EOF @@ -293,6 +294,9 @@ 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}, @@ -303,7 +307,7 @@ EOF # destination of restore is hostDest:shareDest/pathHdrDest hostDest => $hostDest, shareDest => $In{shareDest}, - pathHdrDest => $In{pathHdr}, + pathHdrDest => $inPathHdr, # list of files to restore fileList => \@fileList,