karma: config file auth-refresh, cached in plugin.cfg
karma: collect awards during reset_transaction

(before they disappear)
karma: karma.ini adjustments,

helo.checks scores on specific tests now rather than counting pass/fails. Duplicates aren't scored in helo.checks any more, making this more robust.

increase karma value of successful auth

penalize SPF result=None a little less (-1 was -2)
karma: adding tests, 'remember tarpit' across connects

move global 'var db' to plugin.db

move deny_hooks from register() to karma_init(), so it gets refreshed if karma.ini is reloaded

refactored apply_tarpit out of should_we_deny (testability)

on new connect, apply tarpit value from last connection, slowing down abusers who rapidly reconnect

refactored max_concurrent and karma_penalty out of hook_connection (simpler code, easier to test)
karma: docs, tests, spit & polish

moved tarpit into karma (instead of depending on tarpit plugin)

adaptive connection delays based on score and IP/ASN history

added punish, with a higher threshold for penalty box

[penalty]hooks -> [deny]hooks
	penalty always rejects at connect
	[deny]hooks affects when a poor quality connection is rejected

moved penalties for invalid rfc5321.MailFrom/RcptTo to karma.ini (was hard coded in karma.js)

significant documentation updates

69 tests now.
karma: make sure that pesky transaction exists before checking properties of it
karma: be less punitive to roaming users
karma: add comments describing how penalty settings are used
karma: fix application of awards with 'if in list syntax'

thanks to cek for pointing this out
karma: added awards for auth fails
karma: merged in tests branch
karma: added clamd.fail.virus scores
karma: always set neighbors property

previously, only set it within pass/fail msg. This way means other plugins don't have to parse
Merge pull request #545 from msimerson/karma

Karma