]> diplodocus.org Git - minc/commitdiff
I was using EX_TEMPFAIL for nearly every failure case, as if this were
authorepg <>
Mon, 2 Sep 2002 01:10:13 +0000 (01:10 +0000)
committerepg <>
Mon, 2 Sep 2002 01:10:13 +0000 (01:10 +0000)
a delivery program.  Comb the file for each incidence and use a better
exit code if appropriate.

(store_message): Handle not being able to run the mark command and
being able to run it but having it fail separately.

minc

diff --git a/minc b/minc
index 72c7ca1..29a02d7 100755 (executable)
--- a/minc
+++ b/minc
@@ -269,7 +269,7 @@ sub mkfolder {
                 if (-d $target or mkdir($target)) {
                     next;
                 } else {
-                    err(&EX_TEMPFAIL,
+                    err(&EX_OSERR,
                         "Failed to create +$mhfolder ($component)");
                 }
             }
@@ -282,7 +282,7 @@ sub getfiles {
     my @result;
 
     if (not opendir(DIR, $dir)) {
-        err(&EX_TEMPFAIL, "Failed opendir($dir)");
+        err(&EX_OSERR, "Failed opendir($dir)");
     }
 
     # Initialize $! to 0 (success) because stupid stupid Perl provides
@@ -297,7 +297,7 @@ sub getfiles {
       } readdir(DIR);
 
     if ($! != 0) {
-        err(&EX_TEMPFAIL, "Failed readdir($dir)");
+        err(&EX_OSERR, "Failed readdir($dir)");
     }
 
     closedir(DIR);
@@ -314,14 +314,14 @@ sub get_highest_msgnum {
 
     $dir = "$mh/$mhfolder";
     if (not opendir(DIR, $dir)) {
-        err(&EX_TEMPFAIL, "Failed opendir($dir)");
+        err(&EX_OSERR, "Failed opendir($dir)");
     }
 
     $! = 0;
     @list = readdir(DIR);
 
     if ($! != 0) {
-        err(&EX_TEMPFAIL, "Failed readdir($dir)");
+        err(&EX_OSERR, "Failed readdir($dir)");
     }
 
     closedir(DIR);
@@ -397,7 +397,7 @@ sub store_message {
 
     if ($run) {
         if (not rename($msg, $mhmsg)) {
-            err(&EX_TEMPFAIL, "Failed rename($msg, $mhmsg)");
+            err(&EX_OSERR, "Failed rename($msg, $mhmsg)");
         }
 
         # Mark each message as soon as we store it and bomb if that
@@ -406,8 +406,10 @@ sub store_message {
         # all).
         if ($mhfolder ne 'SPAM') {
             $status = system("mark +$mhfolder $msgnum -sequence unseen -add");
-            if (not (WIFEXITED($status) and WEXITSTATUS($status) == 0)) {
-                errx(&EX_TEMPFAIL, "Failed to mark message unseen");
+            if (not WIFEXITED($status)) {
+                err(&EX_OSERR, "Failed to run mark");
+            } elsif (WEXITSTATUS($status) == 0) {
+                errx(&EX_SOFTWARE, "Failed to mark message unseen.");
             }
         }
     }
@@ -478,7 +480,7 @@ sub is_spam {
 
         if ($run) {
             if (unlink($err) != 1) {
-                err(&EX_TEMPFAIL, "Failed unlink($err)");
+                err(&EX_OSERR, "Failed unlink($err)");
             }
         }
     } elsif (-f $sig) {
@@ -490,7 +492,7 @@ sub is_spam {
 
         if ($run) {
             if (unlink($sig) != 1) {
-                err(&EX_TEMPFAIL, "Failed unlink($sig)");
+                err(&EX_OSERR, "Failed unlink($sig)");
             }
         }
     }
@@ -498,7 +500,7 @@ sub is_spam {
     if ($run) {
         $status = system("razor-check < $msg");
         if (not WIFEXITED($status)) {
-            err(&EX_TEMPFAIL, "Failed to run razor-check < $msg");
+            err(&EX_OSERR, "Failed to run razor-check < $msg");
         } elsif (WEXITSTATUS($status) == 0) {
             return 1;
         } else {