diff -Nur -x '*.orig' -x '*.rej' qpsmtpd-0.96/plugins/karma mezzanine_patched_qpsmtpd-0.96/plugins/karma --- qpsmtpd-0.96/plugins/karma 2016-02-16 23:52:02.000000000 +0100 +++ mezzanine_patched_qpsmtpd-0.96/plugins/karma 2016-04-20 18:39:43.299979947 +0200 @@ -50,6 +50,16 @@ penalize a "mostly good" sender. Raising it to 2 reduces that possibility to improbable. +=head2 strikes + +How many strikes is needed to consider the mail nice or naughty. +Various plugins can adjust the karma (see USING KARMA IN OTHER PLUGINS). +For example, with the default value of 3, if the karma of this message is 3 +or above, the mail is considered to be a nice one. If it's -3 or less, it's +considered a naughty one. Between -2 and +2 it's neutral + +Default: 3 + =head2 penalty_days The number of days a naughty sender is refused connections. Use a decimal @@ -238,6 +248,7 @@ $self->log(LOGERROR, "Bad arguments") if @_ % 2; $self->{_args} = {@_}; $self->{_args}{negative} ||= 1; + $self->{_args}{strikes} ||= 3; $self->{_args}{penalty_days} ||= 1; $self->{_args}{reject_type} ||= 'disconnect'; @@ -428,7 +439,7 @@ my $history = ($nice || 0) - $naughty; my $log_mess = ''; - if ($karma < -2) { # they achieved at least 2 strikes + if ($karma <= $self->{_args}{strikes}) { # Enough negative strikes ? $history--; my $negative_limit = 0 - $self->{_args}{negative}; if ($history <= $negative_limit) { @@ -445,7 +456,7 @@ $log_mess = "negative"; } } - elsif ($karma > 2) { + elsif ($karma >= $self->{_args}{strikes}) { $nice++; $log_mess = "positive"; }