X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=bin%2FBackupPC_dump;h=988d3a6be4073c517af84500f8a52c2ddc5f4902;hp=d19c90c169bfdf2faadbbd73cffa3354167849ad;hb=8af23dbcd5e246780bbdf3a2e40146cfe4175ba2;hpb=f6fbcc3682d2bc9e7dfdc26e95bd5fcdb359496d diff --git a/bin/BackupPC_dump b/bin/BackupPC_dump index d19c90c..988d3a6 100755 --- a/bin/BackupPC_dump +++ b/bin/BackupPC_dump @@ -59,7 +59,7 @@ # Craig Barratt # # COPYRIGHT -# Copyright (C) 2001-2007 Craig Barratt +# Copyright (C) 2001-2009 Craig Barratt # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -77,7 +77,7 @@ # #======================================================================== # -# Version 3.2.0beta0, released 5 April 2009. +# Version 3.2.0, released 31 Jul 2010. # # See http://backuppc.sourceforge.net. # @@ -327,6 +327,7 @@ if ( !$opts{i} && !$opts{f} && $Conf{BlackoutGoodCnt} >= 0 || !defined($p->{hourBegin}) || !defined($p->{hourEnd}) ); + my $matchWday = $wday; if ( $p->{hourBegin} > $p->{hourEnd} ) { $blackout = $p->{hourBegin} <= $currHours || $currHours <= $p->{hourEnd}; @@ -336,14 +337,14 @@ if ( !$opts{i} && !$opts{f} && $Conf{BlackoutGoodCnt} >= 0 # weekday check (eg: Monday 11pm-1am means Monday 2300 to # Tuesday 0100, not Monday 2300-2400 plus Monday 0000-0100). # - $wday--; - $wday += 7 if ( $wday < 0 ); + $matchWday--; + $matchWday += 7 if ( $matchWday < 0 ); } } else { $blackout = $p->{hourBegin} <= $currHours && $currHours <= $p->{hourEnd}; } - if ( $blackout && grep($_ == $wday, @{$p->{weekDays}}) ) { + if ( $blackout && grep($_ == $matchWday, @{$p->{weekDays}}) ) { # print(LOG $bpc->timeStamp, "skipping because of blackout" # . " (alive $StatusHost{aliveCnt} times)\n"); print(STDERR "Skipping $client because of blackout\n") @@ -622,6 +623,7 @@ $NeedPostCmd = 1; # # Now backup each of the shares # +my $shareDuplicate = {}; for my $shareName ( @$ShareNames ) { local(*RH, *WH); @@ -631,11 +633,17 @@ for my $shareName ( @$ShareNames ) { $shareName = encode("utf8", $shareName); $stat{xferOK} = $stat{hostAbort} = undef; $stat{hostError} = $stat{lastOutputLine} = undef; - if ( -d "$Dir/new/$shareName" ) { + if ( $shareName eq "" ) { + print(LOG $bpc->timeStamp, + "unexpected empty share name skipped\n"); + next; + } + if ( $shareDuplicate->{$shareName} ) { print(LOG $bpc->timeStamp, "unexpected repeated share name $shareName skipped\n"); next; } + $shareDuplicate->{$shareName} = 1; UserCommandRun("DumpPreShareCmd", $shareName); if ( $? && $Conf{UserCmdCheckStatus} ) { @@ -914,6 +922,10 @@ for my $shareName ( @$ShareNames ) { # last; } + # + # Wait for any child processes to exit + # + # 1 while ( wait() >= 0 ); } #