Support CBV timeout
This commit is contained in:
@@ -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.
|
Received-SPF header field should show identity that was checked.
|
||||||
|
|
||||||
Check SPF for outgoing mail (including local policy for internal addresses).
|
Check SPF for outgoing mail (including local policy for internal addresses).
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# A simple milter that has grown quite a bit.
|
# A simple milter that has grown quite a bit.
|
||||||
# $Log$
|
# $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
|
# Revision 1.64 2006/06/21 21:12:04 customdesigned
|
||||||
# More delayed reject token headers.
|
# More delayed reject token headers.
|
||||||
# Don't require HELO pass for CBV.
|
# Don't require HELO pass for CBV.
|
||||||
@@ -1233,7 +1236,7 @@ class bmsMilter(Milter.Milter):
|
|||||||
|
|
||||||
# check for delayed bounce of CBV
|
# check for delayed bounce of CBV
|
||||||
if self.is_bounce and srs:
|
if self.is_bounce and srs:
|
||||||
if refaildsn.match(lval):
|
if refaildsn.search(lval):
|
||||||
self.delayed_failure = val.strip()
|
self.delayed_failure = val.strip()
|
||||||
# if confirmed by finding our signed Message-ID,
|
# if confirmed by finding our signed Message-ID,
|
||||||
# original sender (encoded in Message-ID) is blacklisted
|
# 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.add_header('Sender','"Python Milter" <%s>'%msgid)
|
||||||
m = m.as_string()
|
m = m.as_string()
|
||||||
print >>open(template_name+'.last_dsn','w'),m
|
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:
|
if res:
|
||||||
desc = "CBV: %d %s" % res[:2]
|
desc = "CBV: %d %s" % res[:2]
|
||||||
if 400 <= res[0] < 500:
|
if 400 <= res[0] < 500:
|
||||||
@@ -1803,6 +1806,7 @@ def main():
|
|||||||
if srs or len(discard_users) > 0 or smart_alias or dspam_userdir:
|
if srs or len(discard_users) > 0 or smart_alias or dspam_userdir:
|
||||||
flags = flags + Milter.DELRCPT
|
flags = flags + Milter.DELRCPT
|
||||||
Milter.set_flags(flags)
|
Milter.set_flags(flags)
|
||||||
|
socket.setdefaulttimeout(60)
|
||||||
milter_log.info("bms milter startup")
|
milter_log.info("bms milter startup")
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
Milter.runmilter("pythonfilter",socketname,timeout)
|
Milter.runmilter("pythonfilter",socketname,timeout)
|
||||||
|
|||||||
+6
-4
@@ -1,6 +1,6 @@
|
|||||||
%define name milter
|
%define name milter
|
||||||
%define version 0.8.6
|
%define version 0.8.6
|
||||||
%define release 1.RH7
|
%define release 2.RH7
|
||||||
# what version of RH are we building for?
|
# what version of RH are we building for?
|
||||||
%define redhat9 0
|
%define redhat9 0
|
||||||
%define redhat7 1
|
%define redhat7 1
|
||||||
@@ -91,6 +91,8 @@ cat >$RPM_BUILD_ROOT/etc/cron.daily/milter <<'EOF'
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
find /var/log/milter/save -mtime +7 | xargs $R rm
|
find /var/log/milter/save -mtime +7 | xargs $R rm
|
||||||
|
# work around memory leak
|
||||||
|
/etc/init.d/milter restart
|
||||||
EOF
|
EOF
|
||||||
chmod a+x $RPM_BUILD_ROOT/etc/cron.daily/milter
|
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
|
/usr/share/sendmail-cf/hack/rhsbl.m4
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Thu Feb 23 2006 Stuart Gathman <stuart@bmsi.com> 0.8.6-1
|
* Tue May 23 2006 Stuart Gathman <stuart@bmsi.com> 0.8.6-2
|
||||||
- Support fail template
|
- Support fail template, headers in templates
|
||||||
- Create GOSSiP record only when connection will procede to DATA.
|
- Create GOSSiP record only when connection will procede to DATA.
|
||||||
- More SPF lax heuristics
|
- More SPF lax heuristics
|
||||||
- Don't require SPF pass for white/black listing mail from trusted relay.
|
- Don't require SPF pass for white/black listing mail from trusted relay.
|
||||||
- Support localpart wildcard for white and black lists.
|
- 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
|
- Delay reject of unsigned RCPT for postmaster and abuse only
|
||||||
- Fix dsn reporting of hard permerror
|
- Fix dsn reporting of hard permerror
|
||||||
- Resolve FIXME for wrap_close in miltermodule.c
|
- Resolve FIXME for wrap_close in miltermodule.c
|
||||||
|
|||||||
Reference in New Issue
Block a user