###############################################################################
# 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;
if (-d $target or mkdir($target)) {
next;
} else {
- die("Failed to create +$mhfolder ($component): $!\n");
+ err(&EX_TEMPFAIL,
+ "Failed to create +$mhfolder ($component)");
}
}
}
if ($run) {
if (not rename($msg, $mhmsg)) {
- die("Rename failed: $!\n");
+ err(&EX_TEMPFAIL, "Failed rename($msg, $mhmsg)");
}
if ($mhfolder ne '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
# find and proceed with full razor-check mode.
if (unlink($sig) != 1) {
- die("Failed unlink($sig): $!\n");
+ err(&EX_TEMPFAIL, "Failed unlink($sig)");
}
}