By default, avoid creating a PIDFile.
PIDFiles are racy and potentially dangerous. Modern system
supervision systems don't need them, because they manage the process
groups directly.
If the configuration file doesn't specify a PidFile, dkimpy-milter
shouldn't try to create one.
We want to be able to select the default for Socket differently in the
future.
This change augments the API for dkimpy_milter.util.own_socketfile()
by adding an optional sockname argument. This is a
backward-compatible change. If we aren't committed to API stability
for this function, we could make a more invasive change that would
probably be a more reasonable API going forward, but this is probably
good enough.
Changing ownership of sockets that doesn't exist isn't a great
practice.
A better approach would be to apply os.chown() to the file descriptor
of the open socket, but at the very least dkimpy-milter shouldn't
crash the way it currently does if the socket isn't already present.
- Move exception hook from config into util
- Make config data conversion work for all used types
- Make syslog work (still need to make it only work if specified)