Support CBV timeout

This commit is contained in:
Stuart Gathman
2006-07-26 16:42:26 +00:00
parent 30923ab3a1
commit 3a90a35cbc
3 changed files with 31 additions and 6 deletions
+19
View File
@@ -1,3 +1,22 @@
Reports PROBATION even when rejecting message (works, but confusing in log).
Bug in Auto-whitelist. Recent Auto-whitelist doesn't override expired entry.
Delayed_failure detection needs to handle multi-line header fields. Also,
delayed_failure should be recognized when addressed to postmaster@helodomain
Idea: load headers into message object, and use header array.
Need to use wildcards in blacklist.log: *.madcowsrecord.net
Need to exclude emails like !*-admin@example.com in whitelist_sender.
SPF permerror diagnostics should include corrected mechanism.
Delay SPF check until RCPT TO. Cache result to avoid repeating
for multiple RCPT. This avoids overhead for invalid RCPT, and
allows for per RCPT local policy.
Add auto-blacklisted senders to blacklist.log with timestamp.
Received-SPF header field should show identity that was checked.
Check SPF for outgoing mail (including local policy for internal addresses).
+6 -2
View File
@@ -1,6 +1,9 @@
#!/usr/bin/env python
# A simple milter that has grown quite a bit.
# $Log$
# Revision 1.65 2006/06/21 22:22:00 customdesigned
# Handle multi-line headers in delayed dsns.
#
# Revision 1.64 2006/06/21 21:12:04 customdesigned
# More delayed reject token headers.
# Don't require HELO pass for CBV.
@@ -1233,7 +1236,7 @@ class bmsMilter(Milter.Milter):
# check for delayed bounce of CBV
if self.is_bounce and srs:
if refaildsn.match(lval):
if refaildsn.search(lval):
self.delayed_failure = val.strip()
# if confirmed by finding our signed Message-ID,
# original sender (encoded in Message-ID) is blacklisted
@@ -1768,7 +1771,7 @@ class bmsMilter(Milter.Milter):
m.add_header('Sender','"Python Milter" <%s>'%msgid)
m = m.as_string()
print >>open(template_name+'.last_dsn','w'),m
res = dsn.send_dsn(sender,self.receiver,m)
res = dsn.send_dsn(sender,self.receiver,m,timeout=timeout)
if res:
desc = "CBV: %d %s" % res[:2]
if 400 <= res[0] < 500:
@@ -1803,6 +1806,7 @@ def main():
if srs or len(discard_users) > 0 or smart_alias or dspam_userdir:
flags = flags + Milter.DELRCPT
Milter.set_flags(flags)
socket.setdefaulttimeout(60)
milter_log.info("bms milter startup")
sys.stdout.flush()
Milter.runmilter("pythonfilter",socketname,timeout)
+6 -4
View File
@@ -1,6 +1,6 @@
%define name milter
%define version 0.8.6
%define release 1.RH7
%define release 2.RH7
# what version of RH are we building for?
%define redhat9 0
%define redhat7 1
@@ -91,6 +91,8 @@ cat >$RPM_BUILD_ROOT/etc/cron.daily/milter <<'EOF'
#!/bin/sh
find /var/log/milter/save -mtime +7 | xargs $R rm
# work around memory leak
/etc/init.d/milter restart
EOF
chmod a+x $RPM_BUILD_ROOT/etc/cron.daily/milter
@@ -174,13 +176,13 @@ rm -rf $RPM_BUILD_ROOT
/usr/share/sendmail-cf/hack/rhsbl.m4
%changelog
* Thu Feb 23 2006 Stuart Gathman <stuart@bmsi.com> 0.8.6-1
- Support fail template
* Tue May 23 2006 Stuart Gathman <stuart@bmsi.com> 0.8.6-2
- Support fail template, headers in templates
- Create GOSSiP record only when connection will procede to DATA.
- More SPF lax heuristics
- Don't require SPF pass for white/black listing mail from trusted relay.
- Support localpart wildcard for white and black lists.
- Use signed Message-ID in delayed reject of DSNs to blacklist senders
* Thu Feb 23 2006 Stuart Gathman <stuart@bmsi.com> 0.8.6-1
- Delay reject of unsigned RCPT for postmaster and abuse only
- Fix dsn reporting of hard permerror
- Resolve FIXME for wrap_close in miltermodule.c