rbl: apply flat 10% penalty for informational list hits
Some checks are pending
continuous-integration/drone/push Build is running
Some checks are pending
continuous-integration/drone/push Build is running
Informational lists previously didn't count toward the score at all. Now any informational listing applies a flat 10% penalty regardless of how many of them fire, with the final score clamped at 0.
This commit is contained in:
parent
eb52a1d135
commit
9c3109c087
1 changed files with 10 additions and 2 deletions
|
|
@ -302,7 +302,9 @@ func (r *DNSListChecker) reverseIP(ipStr string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// CalculateScore calculates the list contribution to deliverability.
|
// CalculateScore calculates the list contribution to deliverability.
|
||||||
// Informational lists are not counted in the score.
|
// Informational lists don't count proportionally; instead, if any
|
||||||
|
// informational list triggers, a flat 10% penalty is applied regardless
|
||||||
|
// of how many of them fire.
|
||||||
func (r *DNSListChecker) CalculateScore(results *DNSListResults, forWhitelist bool) (int, string) {
|
func (r *DNSListChecker) CalculateScore(results *DNSListResults, forWhitelist bool) (int, string) {
|
||||||
scoringListCount := len(r.Lists) - len(r.informationalSet)
|
scoringListCount := len(r.Lists) - len(r.informationalSet)
|
||||||
|
|
||||||
|
|
@ -324,7 +326,13 @@ func (r *DNSListChecker) CalculateScore(results *DNSListResults, forWhitelist bo
|
||||||
return 100, "A+"
|
return 100, "A+"
|
||||||
}
|
}
|
||||||
|
|
||||||
percentage := 100 - results.RelevantListedCount*100/scoringListCount
|
// A listing on any informational list applies a flat 10% penalty.
|
||||||
|
informationalPenalty := 0
|
||||||
|
if results.ListedCount > results.RelevantListedCount {
|
||||||
|
informationalPenalty = 10
|
||||||
|
}
|
||||||
|
|
||||||
|
percentage := max(0, 100-results.RelevantListedCount*100/scoringListCount-informationalPenalty)
|
||||||
return percentage, ScoreToGrade(percentage)
|
return percentage, ScoreToGrade(percentage)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue