diff --git a/Milter/config.py b/Milter/config.py index 9347c9a..e1fb17e 100644 --- a/Milter/config.py +++ b/Milter/config.py @@ -57,3 +57,8 @@ class MilterConfigParser(ConfigParser): if self.has_option(sect,opt): return self.get(sect,opt) return default + + def getintdefault(self,sect,opt,default=None): + if self.has_option(sect,opt): + return self.getint(sect,opt) + return default diff --git a/ban2zone.py b/ban2zone.py index fc9bcc1..492af13 100644 --- a/ban2zone.py +++ b/ban2zone.py @@ -2,7 +2,6 @@ import socket import sys -from glob import glob banned_ips = set(socket.inet_aton(ip) for fn in sys.argv[1:] diff --git a/bms.py b/bms.py index fcd31dd..fbd2fae 100644 --- a/bms.py +++ b/bms.py @@ -1,6 +1,9 @@ #!/usr/bin/env python # A simple milter that has grown quite a bit. # $Log$ +# Revision 1.134 2008/10/11 15:45:46 customdesigned +# Don't greylist DSNs. +# # Revision 1.133 2008/10/09 18:44:54 customdesigned # Skip greylisting for good reputation. # @@ -355,15 +358,12 @@ def read_config(list): 'tempdir': "/var/log/milter/save", 'datadir': "/var/log/milter", 'socket': "/var/run/milter/pythonsock", - 'timeout': '600', 'scan_html': 'no', 'scan_rfc822': 'yes', 'scan_zip': 'no', 'block_chinese': 'no', 'log_headers': 'no', 'blind_wiretap': 'yes', - 'maxage': '8', - 'hashlength': '8', 'reject_spoofed': 'no', 'reject_noptr': 'no', 'supply_sender': 'no', @@ -382,7 +382,7 @@ def read_config(list): global internal_connect, internal_domains, trusted_relay, hello_blacklist global case_sensitive_localpart, private_relay socketname = cp.get('milter','socket') - timeout = cp.getint('milter','timeout') + timeout = cp.getintdefault('milter','timeout',600) check_user = cp.getaddrset('milter','check_user') log_headers = cp.getboolean('milter','log_headers') internal_connect = cp.getlist('milter','internal_connect') @@ -478,8 +478,8 @@ def read_config(list): global ses,srs,srs_reject_spoofed,srs_domain,banned_users database = cp.getdefault('srs','database') srs_reject_spoofed = cp.getboolean('srs','reject_spoofed') - maxage = cp.getint('srs','maxage') - hashlength = cp.getint('srs','hashlength') + maxage = cp.getintdefault('srs','maxage',8) + hashlength = cp.getintdefault('srs','hashlength',8) separator = cp.getdefault('srs','separator','=') if database: import SRS.DB @@ -509,24 +509,15 @@ def read_config(list): for p in cp.getlist('gossip','peers'): host,port = gossip.splitaddr(p) gossip_node.peers.append(gossip.server.Peer(host,port)) - if cp.has_option('gossip','ttl'): - gossip_ttl = cp.getint('gossip','ttl') - else: - gossip_ttl = 1 + gossip_ttl = cp.getintdefault('gossip','ttl',1) # greylist section if cp.has_option('greylist','dbfile'): global greylist grey_db = cp.getdefault('greylist','dbfile') - grey_days = 36 - if cp.has_option('greylist','retain'): - grey_days = cp.getint('greylist','retain') - grey_expire = 4 - if cp.has_option('greylist','expire'): - grey_expire = cp.getint('greylist','expire') - grey_time = 10 - if cp.has_option('greylist','time'): - grey_time = cp.getint('greylist','expire') + grey_days = cp.getintdefault('greylist','retain',36) + grey_expire = cp.getintdefault('greylist','expire',6) + grey_time = cp.getintdefault('greylist','time',5) greylist = Greylist(grey_db,grey_time,grey_expire,grey_days) def findsrs(fp): diff --git a/milter.cfg b/milter.cfg index 544eca9..5151464 100644 --- a/milter.cfg +++ b/milter.cfg @@ -230,6 +230,9 @@ blind = 1 [greylist] dbfile=greylist.db -grey_time=5 # mins (Google retries in 5 mins) -grey_expire=6 # hours (some legit sites don't retry for 6 hours) -grey_retain=36 # days (keep "first monday" type mailings on file) +# mins (Google retries in 5 mins) +time=5 +# hours (some legit sites don't retry for 6 hours) +expire=6 +# days (keep "first monday" type mailings on file) +retain=36