A round of bugfixing this thing into existence

This commit is contained in:
Scott Kitterman
2018-02-13 03:49:31 -05:00
parent 01503a81ec
commit 396ee7dfe0
2 changed files with 13 additions and 10 deletions
+8 -5
View File
@@ -35,8 +35,8 @@ import StringIO
import re import re
from Milter.config import MilterConfigParser from Milter.config import MilterConfigParser
from Milter.utils import iniplist,parse_addr,parseaddr from Milter.utils import iniplist,parse_addr,parseaddr
import dkim_milter.config as config import dkimpy_milter.config as config
from dkim_milter.util import drop_privileges from dkimpy_milter.util import drop_privileges
def read_config(list): def read_config(list):
"Return new config object." "Return new config object."
@@ -76,7 +76,7 @@ class dkimMilter(Milter.Base):
def log(self,*msg): def log(self,*msg):
self.conf.log.info('[%d] %s' % (self.id,' '.join([str(m) for m in msg]))) self.conf.log.info('[%d] %s' % (self.id,' '.join([str(m) for m in msg])))
def __init__(self): def __init__(self, milterconfig):
self.mailfrom = None self.mailfrom = None
self.id = Milter.uniqueID() self.id = Milter.uniqueID()
# we don't want config used to change during a connection # we don't want config used to change during a connection
@@ -265,14 +265,14 @@ class dkimMilter(Milter.Base):
self.log('DKIM: Fail (saved as %s)'%fname) self.log('DKIM: Fail (saved as %s)'%fname)
return res return res
if __name__ == "__main__": def main():
configFile = '/etc/dkimpy-milter.conf' configFile = '/etc/dkimpy-milter.conf'
if len(sys.argv) > 1: if len(sys.argv) > 1:
if sys.argv[1] in ( '-?', '--help', '-h' ): if sys.argv[1] in ( '-?', '--help', '-h' ):
print('usage: dkimpy-milter [<configfilename>]') print('usage: dkimpy-milter [<configfilename>]')
sys.exit(1) sys.exit(1)
configFile = sys.argv[1] configFile = sys.argv[1]
milterconfig = dkimpy-milter.config._processConfigFile(filename = configFile) milterconfig = config._processConfigFile(filename = configFile)
drop_privileges(milterconfig) drop_privileges(milterconfig)
Milter.factory = dkimMilter(milterconfig) Milter.factory = dkimMilter(milterconfig)
@@ -281,3 +281,6 @@ if __name__ == "__main__":
socketname = milterconfig.get('Socket') socketname = milterconfig.get('Socket')
sys.stdout.flush() sys.stdout.flush()
Milter.runmilter(miltername,socketname,240) Milter.runmilter(miltername,socketname,240)
if __name__ == "__main__":
main()
+5 -5
View File
@@ -53,23 +53,23 @@ class ConfigException(Exception):
#################################################################### ####################################################################
def processConfigFile(filename = None, config = None, useSyslog = 1, def _processConfigFile(filename = None, configdata = None, useSyslog = 1,
useStderr = 0): useStderr = 0):
'''Load the specified config file, exit and log errors if it fails, '''Load the specified config file, exit and log errors if it fails,
otherwise return a config dictionary.''' otherwise return a config dictionary.'''
import policydspfsupp import config
if config == None: config = policydspfsupp.defaultConfigData if configdata == None: configdata = config.defaultConfigData
if filename != None: if filename != None:
try: try:
readConfigFile(filename, config) readConfigFile(filename, configdata)
except Exception, e: except Exception, e:
if useSyslog: if useSyslog:
syslog.syslog(e.args[0]) syslog.syslog(e.args[0])
if useStderr: if useStderr:
sys.stderr.write('%s\n' % e.args[0]) sys.stderr.write('%s\n' % e.args[0])
sys.exit(1) sys.exit(1)
return(config) return(configdata)
################# #################