X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=lib%2FBackupPC%2FLib.pm;h=ecc455dbcfe873df57d39ad9fa6c1a2bb5d19f14;hp=d5438802ee514bd8cfc1ec82bfddcfa9a8d7d5bc;hb=f6257f558390295c581f4e5af8f084341db05d34;hpb=7dee89bfce659051d486cc66515bb7f22bbc4f09 diff --git a/lib/BackupPC/Lib.pm b/lib/BackupPC/Lib.pm index d543880..ecc455d 100644 --- a/lib/BackupPC/Lib.pm +++ b/lib/BackupPC/Lib.pm @@ -29,7 +29,7 @@ # #======================================================================== # -# Version 2.0.0beta1, released 30 Mar 2003. +# Version 2.0.0beta2, released 13 Apr 2003. # # See http://backuppc.sourceforge.net. # @@ -52,13 +52,13 @@ use Digest::MD5; sub new { my $class = shift; - my($topDir, $installDir) = @_; + my($topDir, $installDir, $noUserCheck) = @_; my $bpc = bless { TopDir => $topDir || '/data/BackupPC', BinDir => $installDir || '/usr/local/BackupPC', LibDir => $installDir || '/usr/local/BackupPC', - Version => '2.0.0beta1', + Version => '2.0.0beta2', BackupFields => [qw( num type startTime endTime nFiles size nFilesExist sizeExist nFilesNew sizeNew @@ -83,6 +83,16 @@ sub new print(STDERR $error, "\n"); return; } + # + # Verify we are running as the correct user + # + if ( !$noUserCheck + && $bpc->{Conf}{BackupPCUserVerify} + && $> != (my $uid = (getpwnam($bpc->{Conf}{BackupPCUser}))[2]) ) { + print("Wrong user: my userid is $>, instead of $uid" + . " ($bpc->{Conf}{BackupPCUser})\n"); + return; + } return $bpc; } @@ -440,7 +450,8 @@ sub RmTreeDefer } # -# Empty the trash directory. Returns 0 if it did nothing. +# Empty the trash directory. Returns 0 if it did nothing, 1 if it +# did something, -1 if it failed to remove all the files. # sub RmTreeTrashEmpty { @@ -450,13 +461,15 @@ sub RmTreeTrashEmpty $cwd = $1 if ( $cwd =~ /(.*)/ ); return if ( !-d $trashDir ); - my $d = DirHandle->new($trashDir) - or carp "Can't read $trashDir: $!"; + my $d = DirHandle->new($trashDir) or carp "Can't read $trashDir: $!"; @files = $d->read; $d->close; @files = grep $_!~/^\.{1,2}$/, @files; return 0 if ( !@files ); $bpc->RmTreeQuiet($trashDir, \@files); + foreach my $f ( @files ) { + return -1 if ( -e $f ); + } chdir($cwd) if ( $cwd ); return 1; }