Merge branch 'master' of https://github.com/adefaria/clearscm
[clearscm.git] / maps / lib / MAPS.pm
index f1871ff..72594c2 100644 (file)
@@ -376,7 +376,7 @@ sub CheckOnList ($$;$) {
                    : !defined $domain
                    ? "$email_on_file\@"
                    : $email_on_file;
-    if ($sender =~ /$search_for/i) {
+    if ($sender and $sender =~ /$search_for/i) {
       $rule   = "Matching rule: ($listtype:$sequence) \"$email_on_file\"";
       $rule  .= " - $comment" if $comment and $comment ne '';
       $status = 1;
@@ -702,16 +702,19 @@ sub Encrypt($$) {
   return $row[0];
 } # Encrypt
 
-sub FindEmail(;$) {
-  my ($sender) = @_;
+sub FindEmail(;$$) {
+  my ($sender, $date) = @_;
 
   my $statement;
 
-  if (!defined $sender || $sender eq '') {
-    $statement = "select * from email where userid = '$userid'";
-  } else {
-    $statement = "select * from email where userid = '$userid' and sender = '$sender'";
-  } # if
+  $sender //= '';
+  $date   //= '';
+
+  $statement  = "select * from email where userid = '$userid'";
+
+  # Add conditions if present
+  $statement .= " and sender = '$sender'"  if $sender;
+  $statement .= " and timestamp = '$date'" if $date;
 
   my $sth = $DB->prepare($statement)
     or DBError('FindEmail: Unable to prepare statement', $statement);
@@ -1934,10 +1937,10 @@ sub Whitelist ($$;$$) {
   # Now call MAPSDeliver
   my $status = system "$FindBin::Bin/MAPSDeliver $userid /tmp/MAPSMessage.$$";
 
-  unlink "/tmp/MAPSMessage.$$";
-
   if ($status == 0) {
     Logmsg("whitelist", $sender, "Delivered message");
+  
+    unlink "/tmp/MAPSMessage.$$";
   } else { 
     Error("Unable to deliver message - is MAPSDeliver setgid? - $!");
   } # if