Yahoo Groups archive

Milter-greylist

Index last updated: 2026-04-28 23:32 UTC

Message

Re: [milter-greylist] [RFC] implementing taRgrey

2009-07-05 by Emmanuel Dreyfus

On Sun, Jul 05, 2009 at 09:21:12PM +0900, Kouhei Sutou wrote:
>   (1) Adding 'targrey' action.
>       e.g.: racl targrey CONDITIONS ... sleep 65s
(...)
>       Pros.: Easy to read.
>       Cons.: New action.

And the new action be difficult to integrate with existing ACL. 

>   (2) Adding 'tarpit' ACL clause.
>       e.g.: racl greylist CONDITIONS ... not tarpit 65s

That one seems nicer, but could be imporved a bit. Milter-greylist
actually has two kind of clauses in its ACL:
- condtionnal clauses, such as rcpt /@evilsapmmer\.com$/
- action clauses, with will always evalute to true. eg: msdg "go ayay"

IMO, tarpit fall in the latter category, since there is no conditionnal
testing to perform: if the remote host fails the tarpit, it hangs up 
before the delay, and the ACL evaluation stops here because the connexion
is closed.

Therefore, you can just drop the 'not' and add a tarpit action clause
to the ACL. It can be used both in racl and dacl, while we are there.


On the implementation: conditionnal clauses have been refactored some
time ago to use function pointers so tht less code is duplicated.
Check for acl_clause_rec in acl.c. Unfortunately, action clauses 
are still in the ancient world, with a lot of duplicated code.

You can choose to either add a quick hack to support the tarpit clause,
or refactor action clauses to use the same scheme as conditionnal clauses.
Choose the quick hack if you don't feel confortable with the code.

-- 
Emmanuel Dreyfus
manu@...

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.