* Various changes for 3.0.0beta1
[BackupPC.git] / lib / BackupPC / CGI / RestoreFile.pm
index 9a295bb..e0fbe67 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 2.1.0_CVS, released 8 Feb 2004.
+# Version 3.0.0beta1, released 30 Jul 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
 package BackupPC::CGI::RestoreFile;
 
 use strict;
+use Encode;
 use BackupPC::CGI::Lib qw(:all);
 use BackupPC::FileZIO;
 use BackupPC::Attrib qw(:all);
 use BackupPC::View;
 
+
 sub action
 {
     restoreFile($In{host}, $In{num}, $In{share}, $In{dir});
@@ -150,7 +152,8 @@ sub restoreFile
     my $view = BackupPC::View->new($bpc, $host, \@Backups);
     my $a = $view->fileAttrib($num, $share, $dir);
     if ( $dir =~ m{(^|/)\.\.(/|$)} || !defined($a) ) {
-        ErrorExit("Can't restore bad file ${EscHTML($dir)}");
+        $dir = decode_utf8($dir);
+        ErrorExit("Can't restore bad file ${EscHTML($dir)} ($num, $share)");
     }
     my $f = BackupPC::FileZIO->open($a->{fullPath}, 0, $a->{compress});
     my $data;
@@ -164,7 +167,6 @@ sub restoreFile
         }
        $f->close;
        $linkName =~ s/^\.\///;
-       my $share = $1 if ( $dir =~ /^\/?(.*?)\// );
        restoreFile($host, $num, $share, $linkName, 1, $dir);
        return;
     }