]> diplodocus.org Git - minc/commitdiff
New error handling based on <err.h>.
authorepg <>
Sun, 25 Aug 2002 18:12:02 +0000 (18:12 +0000)
committerepg <>
Sun, 25 Aug 2002 18:12:02 +0000 (18:12 +0000)
(_errprint): New function, handles printing of error messages for err
and errx.

(err): err(3) for Perl.

(errx): errx(3) for Perl.

(mkfolder):
(store_message):
(is_spam): Use err instead of die.

minc

diff --git a/minc b/minc
index e4e6ce7..3cbd090 100755 (executable)
--- a/minc
+++ b/minc
@@ -197,6 +197,35 @@ sub log_headers {
 ###############################################################################
 # Utility procedures
 
+sub _errprint {
+    printf("%s:%s", __FILE__, __LINE__);
+
+    if (@_) {
+        print(': ');
+        foreach (@_) {
+            print;
+        }
+    }
+}
+
+sub err {
+    my $ex = shift;
+
+    _errprint(@_);
+    print(": $!\n");
+
+    exit($ex);
+}
+
+sub errx {
+    my $ex = shift;
+
+    _errprint(@_);
+    print("\n");
+
+    exit($ex);
+}
+
 sub mkfolder {
     my $mhfolder = shift;
     my $folder;
@@ -213,7 +242,8 @@ sub mkfolder {
                 if (-d $target or mkdir($target)) {
                     next;
                 } else {
-                    die("Failed to create +$mhfolder ($component): $!\n");
+                    err(&EX_TEMPFAIL,
+                        "Failed to create +$mhfolder ($component)");
                 }
             }
         }
@@ -242,7 +272,7 @@ sub store_message {
 
     if ($run) {
         if (not rename($msg, $mhmsg)) {
-            die("Rename failed: $!\n");
+            err(&EX_TEMPFAIL, "Failed rename($msg, $mhmsg)");
         }
 
         if ($mhfolder ne 'SPAM') {
@@ -319,7 +349,7 @@ sub is_spam {
         logerr("$err: $message: $!");
 
         if (unlink($err) != 1) {
-            die("Failed unlink($err): $!\n");
+            err(&EX_TEMPFAIL, "Failed unlink($err)");
         }
     } elsif (-f $sig) {
         # This is supposed to be a signature created with razor-check
@@ -329,7 +359,7 @@ sub is_spam {
         # find and proceed with full razor-check mode.
 
         if (unlink($sig) != 1) {
-            die("Failed unlink($sig): $!\n");
+            err(&EX_TEMPFAIL, "Failed unlink($sig)");
         }
     }