* BackupPC_trashClean now logs an error if it can't remove all the
authorcbarratt <cbarratt>
Sun, 11 May 2003 06:30:17 +0000 (06:30 +0000)
committercbarratt <cbarratt>
Sun, 11 May 2003 06:30:17 +0000 (06:30 +0000)
  trash and then goes back to sleep, rather than continually trying.

* Moved correct user (uid) check into BackupPC::Lib so that all
  applications do a user check if $Cong{BackupPCUserVerify} is
  set.  The avoids the risk of manually running BackupPC_dump as
  the wrong user.

* Loss of blackout now applies to "host not found" as well as no ping.
  Reported by Dale Renton.

* "Host not found" is now treated in a similar manner to "no ping".

28 files changed:
ChangeLog
bin/BackupPC
bin/BackupPC_compressPool
bin/BackupPC_dump
bin/BackupPC_link
bin/BackupPC_nightly
bin/BackupPC_restore
bin/BackupPC_sendEmail
bin/BackupPC_serverMesg
bin/BackupPC_tarCreate
bin/BackupPC_tarExtract
bin/BackupPC_trashClean
bin/BackupPC_zcat
bin/BackupPC_zipCreate
cgi-bin/BackupPC_Admin
conf/config.pl
lib/BackupPC/Attrib.pm
lib/BackupPC/FileZIO.pm
lib/BackupPC/Lang/de.pm
lib/BackupPC/Lang/es.pm
lib/BackupPC/Lib.pm
lib/BackupPC/PoolWrite.pm
lib/BackupPC/Xfer/Rsync.pm
lib/BackupPC/Xfer/RsyncFileIO.pm
lib/BackupPC/Xfer/Smb.pm
lib/BackupPC/Xfer/Tar.pm
lib/BackupPC/Zip/FileMember.pm
makeDist

index 7f5534a..97c083d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 * Fixed directory browsing and top-level directory browsing in 2.0.0beta0.
   Reported by several users.
 
-* Added suse-linux init.d script from Leon Letto.
-
-* Added Gentoo linux init.d script from Tim Demarest.
-
-* Applied additional i18n strings from GFK and the translation team.
-
-* Fixed option parsing so that getopts errors are reported and we exit.
-
-* Changed reporting of Xfer PIDs so that rsync cancel works correctly.
-
 * Added -v option to BackupPC_dump for verbose output (useful when
   you run the command manually).  Added messages for all exits.
 
 
 * Fixed command queue CGI display; submitted by Tim Demarest.
 
+* BackupPC_trashClean now logs an error if it can't remove all the
+  trash and then goes back to sleep, rather than continually trying.
+
+* Moved correct user (uid) check into BackupPC::Lib so that all
+  applications do a user check if $Cong{BackupPCUserVerify} is
+  set.  The avoids the risk of manually running BackupPC_dump as
+  the wrong user.
+
+* Loss of blackout now applies to "host not found" as well as no ping.
+  Reported by Dale Renton.
+
+* "Host not found" is now treated in a similar manner to "no ping".
+
+* Added suse-linux init.d script from Leon Letto.
+
+* Added Gentoo linux init.d script from Tim Demarest.
+
+* Applied additional i18n strings from GFK and the translation team.
+
+* Fixed option parsing so that getopts errors are reported and we exit.
+
+* Changed reporting of Xfer PIDs so that rsync cancel works correctly.
+
 #------------------------------------------------------------------------
 # Version 2.0.0beta1, 30 Mar 2003
 #------------------------------------------------------------------------
 
+* Added Spanish translation es.pm from Javier Gonzalez.
+
+* Fixed CGI browse navigation bug that causes BackupPC_Admin to wedge
+  when directories were selected in a certain order.
+
+* Added binmode(STDIN) to BackupPC_tarExtract, suggested by Pat LoPresti
+  to fix a problem a RedHat8 with perl 5.8.0.  It's unclear why this
+  helps, but it should be benign.  See:
+    http://sourceforge.net/mailarchive/forum.php?thread_id=1853018&forum_id=503
+
+#------------------------------------------------------------------------
+# Version 2.0.0beta0, 23 Feb 2003
+#------------------------------------------------------------------------
+
 * Support for rsync and rsyncd backup and restore.  Changes to
   BackupPC_dump, BackupPC_restore, and new modules BackupPC::Xfer::Rsync
   and BackupPC::Xfer::RsyncFileIO.
   now supports English and French, and adding more languages is
   now easy.  New config paramater $Conf{Language} sets the language.
 
-* Added Spanish translation es.pm from Javieri Gonzalez.
-
 * Added optional user-defined pre/post dump/restore commands, allowing
   things like database shutdown/startup for dumps.
 
 * Added catching of SIG_PIPE to BackupPC_dump, and changed catch_signal
   to ignore multiple signals of the same type.
 
-* Added binmode(STDIN) to BackupPC_tarExtract, suggested by Pat LoPresti
-  to fix a problem a RedHat8 with perl 5.8.0.  It's unclear why this
-  helps, but it should be benign.  See:
-    http://sourceforge.net/mailarchive/forum.php?thread_id=1853018&forum_id=503
-
 * Added reporting of the largest number of hardlinks in the pool to the
   log file.
 
index d18bcef..bec909d 100755 (executable)
@@ -47,7 +47,7 @@
 #
 #========================================================================
 #
-# Version 2.0.0beta1, released 30 Mar 2003.
+# Version 2.0.0beta2, released 13 Apr 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -319,6 +319,10 @@ sub Main_Initialize
         }
         $Status{$host}{activeJob} = 0;
     }
+    foreach my $host ( sort(keys(%Status)) ) {
+        next if ( defined($Hosts->{$host}) );
+       delete($Status{$host});
+    }
 
     #
     # Write out our initial status and save our PID
@@ -560,9 +564,12 @@ sub Main_TryToRun_Bg_or_User_Queue
         vec($FDread, $Jobs{$host}{fn}, 1) = 1;
         $Jobs{$host}{startTime}  = time;
         $Jobs{$host}{reqTime}    = $req->{reqTime};
+        $Jobs{$host}{userReq}    = $req->{userReq};
         $Jobs{$host}{cmd}        = join(" ", $progName, @args);
         $Jobs{$host}{user}       = $user;
         $Jobs{$host}{type}       = $type;
+       $Status{$host}{userReq}  = $req->{userReq}
+                                       if ( defined($Hosts->{$host}) );
         if ( !$req->{dhcp} ) {
             $Status{$host}{state}     = "Status_".$type."_starting";
             $Status{$host}{activeJob} = 1;
@@ -844,10 +851,14 @@ sub Main_Check_Job_Messages
                 $Status{$host}{dhcpCheckCnt}--
                                 if ( $Status{$host}{dhcpCheckCnt} > 0 );
             } elsif ( $mesg =~ /^no ping response/
-                            || $mesg =~ /^ping too slow/ ) {
+                            || $mesg =~ /^ping too slow/
+                            || $mesg =~ /^host not found/ ) {
                 $Status{$host}{state}     = "Status_idle";
-                if ( $Status{$host}{reason} ne "Reason_backup_failed" ) {
+                if ( $Status{$host}{userReq}
+                       || $Status{$host}{reason} ne "Reason_backup_failed"
+                       || $Status{$host}{error} =~ /^aborted by user/ ) {
                     $Status{$host}{reason}    = "Reason_no_ping";
+                   $Status{$host}{error}     = $mesg;
                     $Status{$host}{startTime} = time;
                 }
                 $Status{$host}{deadCnt}++;
@@ -1085,6 +1096,7 @@ sub Main_Check_Client_Messages
                                 user    => $user,
                                 reqTime => time,
                                 doFull  => $doFull,
+                                userReq => 1,
                                 dhcp    => $hostIP eq $host ? 0 : 1,
                         });
                     $UserQueueOn{$hostIP} = 1;
@@ -1113,6 +1125,7 @@ sub Main_Check_Client_Messages
                                 reqTime => time,
                                 dhcp    => 0,
                                 restore => 1,
+                               userReq => 1,
                         });
                     $UserQueueOn{$host} = 1;
                     if ( defined($Jobs{$host}) ) {
index 1eedad3..998f35f 100755 (executable)
@@ -49,7 +49,7 @@
 #
 #========================================================================
 #
-# Version 2.0.0beta1, released 30 Mar 2003.
+# Version 2.0.0beta2, released 13 Apr 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
index e6d75f3..8d27db3 100755 (executable)
@@ -70,7 +70,7 @@
 #
 #========================================================================
 #
-# Version 2.0.0beta1, released 30 Mar 2003.
+# Version 2.0.0beta2, released 13 Apr 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -215,9 +215,8 @@ if ( !$opts{d} ) {
        print("Name server doesn't know about $host; trying NetBios\n")
                        if ( $opts{v} );
         if ( !defined($hostIP = $bpc->NetBiosHostIPFind($host)) ) {
-           print(LOG $bpc->timeStamp,
-                           "dump failed: Can't find host $host\n");
-            print("dump failed: Can't find host $host\n");
+           print(LOG $bpc->timeStamp, "Can't find host $host via netbios\n");
+            print("host not found\n");
             exit(1);
         }
     } else {
index 2da62f6..44dbccb 100755 (executable)
@@ -39,7 +39,7 @@
 #
 #========================================================================
 #
-# Version 2.0.0beta1, released 30 Mar 2003.
+# Version 2.0.0beta2, released 13 Apr 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
index 7b726b1..146b6db 100755 (executable)
@@ -35,7 +35,7 @@
 #
 #========================================================================
 #
-# Version 2.0.0beta1, released 30 Mar 2003.
+# Version 2.0.0beta2, released 13 Apr 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
index 212f928..f63882b 100755 (executable)
@@ -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.
 #
index c1447bb..f30c0d3 100755 (executable)
@@ -31,7 +31,7 @@
 #
 #========================================================================
 #
-# Version 2.0.0beta1, released 30 Mar 2003.
+# Version 2.0.0beta2, released 13 Apr 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
index 700bcd1..672c5b9 100755 (executable)
@@ -43,7 +43,7 @@
 #
 #========================================================================
 #
-# Version 2.0.0beta1, released 30 Mar 2003.
+# Version 2.0.0beta2, released 13 Apr 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
index 43240d3..d2fd623 100755 (executable)
@@ -48,7 +48,7 @@
 #
 #========================================================================
 #
-# Version 2.0.0beta1, released 30 Mar 2003.
+# Version 2.0.0beta2, released 13 Apr 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
index af88e9a..bdd506b 100755 (executable)
@@ -27,7 +27,7 @@
 #
 #========================================================================
 #
-# Version 2.0.0beta1, released 30 Mar 2003.
+# Version 2.0.0beta2, released 13 Apr 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
index edea64c..43abbf6 100755 (executable)
@@ -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.
 #
@@ -51,7 +51,9 @@ $bpc->ChildInit();
 ###########################################################################
 while ( 1 ) {
     print("processState running\n");
-    1 while ( $bpc->RmTreeTrashEmpty("$TopDir/trash") );
+    if ( $bpc->RmTreeTrashEmpty("$TopDir/trash") < 0 ) {
+       print("log BackupPC_trashClean failed to empty $TopDir/trash\n");
+    }
     print("processState idle\n");
     sleep($Conf{TrashCleanSleepSec} || 300);
 }
index 1c7ba02..655a41d 100755 (executable)
@@ -32,7 +32,7 @@
 #
 #========================================================================
 #
-# Version 2.0.0beta1, released 30 Mar 2003.
+# Version 2.0.0beta2, released 13 Apr 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
index cb56ac2..5b48622 100755 (executable)
@@ -51,7 +51,7 @@
 #
 #========================================================================
 #
-# Version 2.0.0beta1, released 30 Mar 2003.
+# Version 2.0.0beta2, released 13 Apr 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
index 6e9d9f5..b077bcc 100755 (executable)
@@ -39,7 +39,7 @@
 #
 #========================================================================
 #
-# Version 2.0.0beta1, released 30 Mar 2003.
+# Version 2.0.0beta2, released 13 Apr 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -157,6 +157,7 @@ sub Action_Summary
     }
     foreach my $host ( sort(keys(%Status)) ) {
         my($fullDur, $incrCnt, $incrAge, $fullSize, $fullRate, $reasonHilite);
+       my($shortErr);
         my @Backups = $bpc->BackupInfoRead($host);
         my $fullCnt = $incrCnt = 0;
         my $fullAge = $incrAge = -1;
@@ -196,10 +197,17 @@ sub Action_Summary
        $incrAge = "&nbsp;" if ( $incrAge eq "" );
        $reasonHilite = $Conf{CgiStatusHilightColor}{$Status{$host}{reason}};
        $reasonHilite = " bgcolor=\"$reasonHilite\"" if ( $reasonHilite ne "" );
+        if ( $Status{$host}{state} ne "Status_backup_in_progress"
+               && $Status{$host}{state} ne "Status_restore_in_progress"
+               && $Status{$host}{error} ne "" ) {
+           ($shortErr = $Status{$host}{error}) =~ s/(.{48}).*/$1.../;
+           $shortErr = " ($shortErr)";
+       }
 
         $str = <<EOF;
 <tr$reasonHilite><td> ${HostLink($host)} </td>
-    <td align="center"> ${UserLink($Hosts->{$host}{user})} </td>
+    <td align="center"> ${UserLink(defined($Hosts->{$host})
+                                   ? $Hosts->{$host}{user} : "")} </td>
     <td align="center"> $fullCnt </td>
     <td align="center"> $fullAge </td>
     <td align="center"> $fullSize </td>
@@ -207,7 +215,7 @@ sub Action_Summary
     <td align="center"> $incrCnt </td>
     <td align="center"> $incrAge </td>
     <td align="center"> $Lang->{$Status{$host}{state}} </td>
-    <td> $Lang->{$Status{$host}{reason}} </td></tr>
+    <td> $Lang->{$Status{$host}{reason}}$shortErr </td></tr>
 EOF
         if ( @Backups == 0 ) {
             $hostCntNone++;
@@ -1343,7 +1351,9 @@ EOF
     }
     $statusStr .= eval("qq{$Lang->{Last_status_is_state_StatusHost_state_reason_as_of_startTime}}");
 
-    if ( $StatusHost{error} ne "" ) {
+    if ( $StatusHost{state} ne "Status_backup_in_progress"
+           && $StatusHost{state} ne "Status_restore_in_progress"
+           && $StatusHost{error} ne "" ) {
         $statusStr .= eval("qq{$Lang->{Last_error_is____EscHTML_StatusHost_error}}");
     }
     my $priorStr = "Pings";
@@ -1404,7 +1414,8 @@ sub Action_GeneralInfo
         $jobStr .= <<EOF;
 <tr><td> ${HostLink($host)} </td>
     <td align="center"> $Jobs{$host}{type} </td>
-    <td align="center"> ${UserLink($Hosts->{$host}{user})} </td>
+    <td align="center"> ${UserLink(defined($Hosts->{$host})
+                                       ? $Hosts->{$host}{user} : "")} </td>
     <td> $startTime </td>
     <td> $cmd </td>
     <td align="center"> $Jobs{$host}{pid} </td>
@@ -1414,7 +1425,8 @@ EOF
     }
     foreach my $host ( sort(keys(%Status)) ) {
         next if ( $Status{$host}{reason} ne "Reason_backup_failed"
-              || $Status{$host}{error} =~ /^Can't find host \Q$host/ );
+                   && (!$Status{$host}{userReq}
+                       || $Status{$host}{reason} ne "Reason_no_ping") );
         my $startTime = timeStamp2($Status{$host}{startTime});
         my($errorTime, $XferViewStr);
         if ( $Status{$host}{errorTime} > 0 ) {
@@ -1436,7 +1448,8 @@ EOF
         $statusStr .= <<EOF;
 <tr><td> ${HostLink($host)} </td>
     <td align="center"> $Status{$host}{type} </td>
-    <td align="center"> ${UserLink($Hosts->{$host}{user})} </td>
+    <td align="center"> ${UserLink(defined($Hosts->{$host})
+                                       ? $Hosts->{$host}{user} : "")} </td>
     <td align="right"> $startTime </td>
     <td> $XferViewStr </td>
     <td align="right"> $errorTime </td>
@@ -1711,7 +1724,7 @@ sub ConfirmIPAddress
     my($host) = @_;
     my $ipAddr = $host;
 
-    if ( $Hosts->{$host}{dhcp}
+    if ( defined($Hosts->{$host}) && $Hosts->{$host}{dhcp}
               && $ENV{REMOTE_ADDR} =~ /^(\d+[\.\d]*)$/ ) {
        $ipAddr = $1;
        my($netBiosHost, $netBiosUser) = $bpc->NetBiosInfoGet($ipAddr);
index 59584a2..54e0f5b 100644 (file)
@@ -905,6 +905,10 @@ $Conf{PingPath} = '/bin/ping';
 #   $pingPath      path to ping ($Conf{PingPath})
 #   $host          host name
 #
+# Wade Brown reports that on solaris 2.6 and 2.7 ping -s returns the wrong
+# exit status (0 even on failure).  Replace with "ping $host 1", which
+# gets the correct exit status but we don't get the round-trip time.
+#
 $Conf{PingCmd} = '$pingPath -c 1 $host';
 
 #
@@ -1183,7 +1187,9 @@ $Conf{CgiURL} = undef;
 
 #   
 # Language to use.  See lib/BackupPC/Lang for the list of supported
-# languages, which include English (en), French (fr), and Spanish (es).
+# languages, which include English (en), French (fr), Spanish (es),
+# and German (de).
+#
 # Currently the Language setting applies to the CGI interface and email
 # messages sent to users.  Log files and other text is still in English.
 #
index 05547be..886e643 100644 (file)
@@ -30,7 +30,7 @@
 #
 #========================================================================
 #
-# Version 2.0.0beta1, released 30 Mar 2003.
+# Version 2.0.0beta2, released 13 Apr 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
index 48554b8..e126b94 100644 (file)
@@ -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.
 #
index 4195acc..55e6b6f 100644 (file)
@@ -1,5 +1,8 @@
 #!/usr/bin/perl -T
-
+#
+# by Manfred Herrmann (V1.1) (some typo errors + 3 new strings)
+# CVS-> Revision ???
+#
 #my %lang;
 
 #use strict;
@@ -153,7 +156,7 @@ Sie starten ein \$type Backup f
 <input type="hidden" name="doit" value="1">
 Möchten Sie das wirklich tun?
 <input type="submit" value="\$In{action}" name="action">
-<input type="submit" value="No" name="">
+<input type="submit" value="Nein" name="">
 </form>
 EOF
 # --------------------------------
@@ -174,7 +177,7 @@ Zus
 <p>
 Möchten Sie das wirklich tun?
 <input type="submit" value="\$In{action}" name="action">
-<input type="submit" value="No" name="">
+<input type="submit" value="Nein" name="">
 </form>
 
 EOF
@@ -410,7 +413,7 @@ Backup Nummer \$num:
 \$hiddenStr
 Wollen Sie das wirklich tun?
 <input type="submit" value="\$In{action}" name="action">
-<input type="submit" value="No" name="">
+<input type="submit" value="Nein" name="">
 </form>
 EOF
 
@@ -753,9 +756,9 @@ $Lang{Hosts} = "Computer";
 $Lang{This_PC_has_never_been_backed_up} = "<h2> Dieser Computer wurde nie gesichert!! </h2>\n";
 $Lang{This_PC_is_used_by} = "<li>Dieser Computer wird betreut von \${UserLink(\$user)}";
 
-$Lang{Extracting_only_Errors} = "(Extracting only Errors)";
+$Lang{Extracting_only_Errors} = "(nur Fehler anzeigen)";
 $Lang{XferLOG} = "XferLOG";
-$Lang{Errors}  = "Errors";
+$Lang{Errors}  = "Fehler";
 
 # ------------
 $Lang{Last_email_sent_to__was_at___subject} = <<EOF;
@@ -920,7 +923,7 @@ Hallo $userName,
 
 Ihr Computer ($host) wurde durch den BackupServer noch nie erfolgreich gesichert.
 
-Backups sollten automatisch erfolgen, wenn Ihr Computer am Netzwerk angschlossen ist.
+Backups sollten automatisch erfolgen, wenn Ihr Computer am Netzwerk angeschlossen ist.
 Sie sollten Ihren Backup-Betreuer oder den IT-Dienstleister kontaktieren, wenn:
 
   - Ihr Computer regelmäßig am Netzwerk angeschlossen ist. Dann handelt es sich
@@ -952,7 +955,7 @@ Ihr Computer ($host) wurde seit $days Tagen nicht mehr erfolgreich gesichert.
 
 Ihr Computer wurde von vor $firstTime Tagen bis vor $days Tagen $numBackups mal
 erfolgreich gesichert.
-Backups sollten automatisch erfolgen, wenn Ihr Computer am Netzwerk angschlossen ist.
+Backups sollten automatisch erfolgen, wenn Ihr Computer am Netzwerk angeschlossen ist.
 
 Wenn Ihr Computer in den letzten $days Tagen mehr als ein paar Stunden am
 Netzwerk angeschlossen war, sollten Sie Ihren Backup-Betreuer oder
@@ -960,7 +963,7 @@ den IT-Dienstleister kontaktieren um die Ursache zu ermitteln und zu beheben.
 Andernfalls, wenn Sie z. B. lange Zeit nicht im Büro sind, können Sie höchstens
 manuell Ihre Dateien sichern (evtl. kopieren auf eine externe Festplatte).
 
-Bitte denken Sie daran, dass alle in den letzten $days Tagen gänderten Dateien (z. B.
+Bitte denken Sie daran, dass alle in den letzten $days Tagen geänderten Dateien (z. B.
 auch e-mails und Anhänge oder Datenbankeinträge) verloren gehen falls Ihre
 Festplatte einen crash erleidet oder Dateien durch versehentliches Löschen oder
 Virenbefall unbrauchbar werden.
index 9bf33db..9902c55 100644 (file)
@@ -756,9 +756,9 @@ $Lang{Hosts} = "Hosts";
 $Lang{This_PC_has_never_been_backed_up} = "<h2> !Nunca se ha hecho copia de seguridad de este PC! </h2>\n";
 $Lang{This_PC_is_used_by} = "<li>This PC es utilizado por \${UserLink(\$user)}";
 
-$Lang{Extracting_only_Errors} = "(Extracting only Errors)";
-$Lang{XferLOG} = "XferLOG";
-$Lang{Errors}  = "Errors";
+$Lang{Extracting_only_Errors} = "(Extrayendo sólo Errores)";
+$Lang{XferLOG} = "TransfREG";
+$Lang{Errors}  = "Errores";
 
 # ------------
 $Lang{Last_email_sent_to__was_at___subject} = <<EOF;
index d543880..0da9356 100644 (file)
@@ -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.
 #
@@ -58,7 +58,7 @@ sub new
         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,15 @@ sub new
         print(STDERR $error, "\n");
         return;
     }
+    #
+    # Verify we are running as the correct user
+    #
+    if ( $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 +449,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 +460,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;
 }
index 4fe4aa7..f05223c 100644 (file)
@@ -56,7 +56,7 @@
 #
 #========================================================================
 #
-# Version 2.0.0beta1, released 30 Mar 2003.
+# Version 2.0.0beta2, released 13 Apr 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
index ed60c87..8b8cf55 100644 (file)
@@ -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,9 +52,9 @@ BEGIN {
         $RsyncLibOK = 0;
         $RsyncLibErr = "File::RsyncP module doesn't exist";
     } else {
-        if ( $File::RsyncP::VERSION < 0.30 ) {
+        if ( $File::RsyncP::VERSION < 0.41 ) {
             $RsyncLibOK = 0;
-            $RsyncLibErr = "File::RsyncP module version too old: need 0.30";
+            $RsyncLibErr = "File::RsyncP module version too old: need 0.41";
         } else {
             $RsyncLibOK = 1;
         }
index 6c8a7cd..cd0dc82 100644 (file)
@@ -12,7 +12,7 @@
 #
 #========================================================================
 #
-# Version 2.0.0beta1, released 30 Mar 2003.
+# Version 2.0.0beta2, released 13 Apr 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -719,7 +719,7 @@ sub fileDeltaRxNext
                     #
                     my $data;
                     $fio->{rxInData} = "";
-                    while ( $fh->read(\$data, 30 * 1024 * 1024) > 0 ) {
+                    while ( $fh->read(\$data, 16 * 1024 * 1024) > 0 ) {
                         $fio->{rxInData} .= $data;
                     }
                    $fio->log("$attr->{fullPath}: cached all $attr->{size}"
index e939094..333f72c 100644 (file)
@@ -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.
 #
index 9d3e819..5358943 100644 (file)
@@ -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.
 #
index ff4258d..a6a5bd8 100644 (file)
@@ -33,7 +33,7 @@
 #
 #========================================================================
 #
-# Version 2.0.0beta1, released 30 Mar 2003.
+# Version 2.0.0beta2, released 13 Apr 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
index 8fd096d..e3ba30f 100755 (executable)
--- a/makeDist
+++ b/makeDist
@@ -42,7 +42,7 @@ use File::Copy;
 umask(0022);
 
 my $Version     = "2.0.0beta2";
-my $ReleaseDate = "13 Apr 2003";
+my $ReleaseDate = "11 May 2003";
 my $DistDir     = "dist/BackupPC-$Version";
 
 my @PerlSrc = qw(