X-Git-Url: https://defaria.com/gitweb/?a=blobdiff_plain;f=maps%2Flib%2FMAPS.pm;h=7573ed5e1275a586f57516debea18ad39448ddcc;hb=56d3fe8351c2eb173541afeb9445059fa452d73e;hp=793f015d0625e0e6cf350cac1a78d7587e4fd52b;hpb=dd45f3430c6ce7ad0633e2a7989c120372ef0b6f;p=clearscm.git diff --git a/maps/lib/MAPS.pm b/maps/lib/MAPS.pm index 793f015..7573ed5 100644 --- a/maps/lib/MAPS.pm +++ b/maps/lib/MAPS.pm @@ -1473,17 +1473,33 @@ sub Whitelist ($$;$$) { my $userid = GetContext; # Dump message into a file - open my $message, '>', "/tmp/MAPSMessage.$$" - or error("Unable to open message file (/tmp/MAPSMessage.$$): $!\n"), return -1; + my $msgfile = "/tmp/MAPSMessage.$$"; + + open my $message, '>', $msgfile + or error("Unable to open message file ($msgfile): $!\n"), return -1; print $message $data; close $message; # Now call MAPSDeliver - my $status = system "$FindBin::Bin/MAPSDeliver $userid /tmp/MAPSMessage.$$"; + my ($status, @output) = Execute "$FindBin::Bin/MAPSDeliver $userid $msgfile"; + + if ($status != 0) { + my $msg = "Unable to deliver message (message left at $msgfile\n\n"; + $msg .= join "\n", @output; + + Logmsg( + userid => $userid, + type => 'whitelist', + sender => $sender, + message => $msg, + ); + + Error ($msg, 1); + } # if - unlink "/tmp/MAPSMessage.$$"; + unlink $msgfile; if ($status == 0) { Logmsg(