X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=lib%2FBackupPC%2FLib.pm;h=31eb06d7c5a80e0c0e2e30357eca7ef2176fdd68;hp=8665c299fae414bbbd91f659e0fd8beaa1908be3;hb=e560b163a4a8b37d45204da70b60b1ba07199afe;hpb=5b79f9a3c01bca16dd4d211e76fc53daa549e421 diff --git a/lib/BackupPC/Lib.pm b/lib/BackupPC/Lib.pm index 8665c29..31eb06d 100644 --- a/lib/BackupPC/Lib.pm +++ b/lib/BackupPC/Lib.pm @@ -29,7 +29,7 @@ # #======================================================================== # -# Version 3.2.0, released 31 Dec 2008. +# Version 3.2.0beta0, released 5 April 2009. # # See http://backuppc.sourceforge.net. # @@ -130,7 +130,7 @@ sub new my $bpc = bless { %$paths, - Version => '3.2.0', + Version => '3.2.0beta0', }, $class; $bpc->{storage} = BackupPC::Storage->new($paths); @@ -624,7 +624,15 @@ sub RmTreeDefer my($i, $f); return if ( !-e $file ); - mkpath($trashDir, 0, 0777) if ( !-d $trashDir ); + if ( !-d $trashDir ) { + eval { mkpath($trashDir, 0, 0777) }; + if ( $@ ) { + # + # There's no good place to send this error - use stderr + # + print(STDERR "RmTreeDefer: can't create directory $trashDir"); + } + } for ( $i = 0 ; $i < 1000 ; $i++ ) { $f = sprintf("%s/%d_%d_%d", $trashDir, time, $$, $i); next if ( -e $f ); @@ -903,7 +911,10 @@ sub MakeFileLink } elsif ( $newFile && -f $name && (stat($name))[3] == 1 ) { my($newDir); ($newDir = $rawFile) =~ s{(.*)/.*}{$1}; - mkpath($newDir, 0, 0777) if ( !-d $newDir ); + if ( !-d $newDir ) { + eval { mkpath($newDir, 0, 0777) }; + return -5 if ( $@ ); + } return -4 if ( !link($name, $rawFile) ); return 2; } else { @@ -1035,6 +1046,10 @@ sub NetBiosInfoGet }; $nmbCmd = $bpc->cmdVarSubstitute($bpc->{Conf}{NmbLookupCmd}, $args); foreach ( split(/[\n\r]+/, $bpc->cmdSystemOrEval($nmbCmd, undef, $args)) ) { + # + # skip and other non entries + # + next if ( /<\w{2}> - /i ); next if ( !/^\s*([\w\s-]+?)\s*<(\w{2})\> - .*/i ); $netBiosHostName ||= $1 if ( $2 eq "00" ); # host is first 00 $netBiosUserName = $1 if ( $2 eq "03" ); # user is last 03 @@ -1218,7 +1233,7 @@ sub cmdVarSubstitute } } # - # Merge variables into @tarClientCmd + # Merge variables into @cmd # foreach my $arg ( @$template ) { #