return;
} # RecordHit
-sub CheckOnList ($$) {
+sub CheckOnList ($$;$) {
# CheckOnList will check to see if the $sender is on the $listfile.
# Return 1 if found 0 if not.
- my ($listtype, $sender) = @_;
+ my ($listtype, $sender, $update) = @_;
+
+ $update //= 1;
my $status = 0;
my $rule;
$rule .= " - $comment" if $comment and $comment ne '';
$status = 1;
- RecordHit $listtype, $sequence, ++$hit_count;
+ RecordHit $listtype, $sequence, ++$hit_count if $update;
last;
} # if
sub ReturnMessages ($$) {
my ($userid, $sender) = @_;
- # Note, the left(timestamp,16) chops off the seconds and the group
- # by effectively squashes two emails received in the same minute to
- # just one. We get a lot of double emails within the same minute. I
- # think it's a result of the mailer configuration and it attempting
- # to resend the message, not that it's the spammer sending just two
- # emails in under a minute then going away. This will mean we will
- # see fewer emails listed (essentially dups within one minute are
- # squashed) yet they still will count towards the number of hits
- # before we autonullist. We should squash these upon receipt, not
- # upon report. Maybe latter...
my $statement = <<"END";
select
subject,
- left(timestamp,16)
+ timestamp
from
email
where
userid = '$userid' and
sender = '$sender'
group by
- left(timestamp,16) desc
+ timestamp desc
END
my $sth = $DB->prepare ($statement)