-sub is_spam {
- my $msg = shift;
- my $err;
- my $sig;
- my $line;
- my $message;
- my $status;
-
- $err = $sig = $msg;
- $err =~ s|/new/|/err/|;
- $sig =~ s|/new/|/sig/|;
- if (-f $err) {
- open(ERR, $err);
- $line = <ERR>;
- close(ERR);
-
- chomp($line);
- ($message, $!) = split(/:/, $line);
-
- logerr("$err: $message: $!");
-
- if ($run) {
- if (unlink($err) != 1) {
- err(&EX_OSERR, "Failed unlink($err)");
- }
- }
- } elsif (-f $sig) {
- # This is supposed to be a signature created with razor-check
- # directly after delivery. Currently this isn't supported
- # because it isn't clear to me how to get that signature back
- # into razor-check. For now, just unlink any sig files we
- # find and proceed with full razor-check mode.
-
- if ($run) {
- if (unlink($sig) != 1) {
- err(&EX_OSERR, "Failed unlink($sig)");
- }
- }
- }
-
- if ($run) {
- $status = system("razor-check < $msg");
- if (not WIFEXITED($status)) {
- err(&EX_OSERR, "Failed to run razor-check < $msg");
- } elsif (WEXITSTATUS($status) == 0) {
- return 1;
- } else {
- return 0;
- }
- } else {
- return 0;
- }
-}
-