X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=inline;f=lib%2FBackupPC%2FCGI%2FRestore.pm;h=f00ce5900924a81bce8be98cef2c332dafe1eaba;hb=8f5625f9cdf47f8e04be654c4954838b2df3e26d;hp=a57422eea025ca8b50ed79c1dc1f89681e6526e2;hpb=bd6334a9c72e7fa75f13fd6426f5a8a8cd4ab8b1;p=BackupPC.git diff --git a/lib/BackupPC/CGI/Restore.pm b/lib/BackupPC/CGI/Restore.pm index a57422e..f00ce59 100644 --- a/lib/BackupPC/CGI/Restore.pm +++ b/lib/BackupPC/CGI/Restore.pm @@ -28,7 +28,7 @@ # #======================================================================== # -# Version 2.1.0_CVS, released 8 Feb 2004. +# Version 2.1.0beta0, released 20 Mar 2004. # # See http://backuppc.sourceforge.net. # @@ -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,