I am still having a few problems with the greylisting. It is working but I am getting a lot of "Couldnt insert tripple" in my syslog.

Looking at the logic I can see the problem but at this time not sure the best way to fix it.

tripple=RelayAddr/Sender/Recipients
now=current time=2006-10-03 15:02:38
timestamp=greylist time limit=current time - 5 minutes

1) First time e-mail is received, so it is inserted in database:
        |RelayAddr/Sender/Recipients|messageID|2006-10-03 15:02:38|

2a) E-mail is delivered again in 4 minutes, so messageID is different and timestamp is (5 minutes before):
        SELECT DISTINCT tripple, sessionid FROM greylisting
                WHERE tripple  = "RelayAddr/Sender/Recipients"
                AND timestamp <= "2006-10-03 15:01:38")

Which RETURNS no values, since time stored in database is greater than this time.

2b) It does an insert which it will fail due to a clash of tripples.

I just wonder should the logic be altered so that the SELECT retrieves tripples from the database and then the TIME is checked. I think this is what you do on your postgres and BerkeleyDB versions.

Thanks

Andrew
_______________________________________________
NOTE: If there is a disclaimer or other legal boilerplate in the above
message, it is NULL AND VOID.  You may ignore it.

Visit http://www.mimedefang.org and http://www.roaringpenguin.com
MIMEDefang mailing list MIMEDefang@lists.roaringpenguin.com
http://lists.roaringpenguin.com/mailman/listinfo/mimedefang

Reply via email to