Compare commits

...

4 Commits

Author SHA1 Message Date
Scott Kitterman abba014c5c Add release date for 1.1.4 2019-11-22 20:35:38 -05:00
Scott Kitterman 807b1391b2 - Delete own_socketfile to resolve race condition where the permissions
change fails on a Unix socket because it hasn't been created yet (libmilter
   will do this correctly on its own based on umask, the milter doesn't need
   to do it) (LP: #1849712)
2019-10-29 07:15:51 -04:00
Scott Kitterman dcb781c365 Make error logging more explicit to aid debugging 2019-10-18 23:31:34 -04:00
Scott Kitterman 577a971f1a Fix typo in README 2019-10-07 00:41:43 -04:00
5 changed files with 11 additions and 27 deletions
+7
View File
@@ -1,3 +1,10 @@
1.1.4 2019-11-22
- Make error logging more explicit to aid debugging
- Delete own_socketfile to resolve race condition where the permissions
change fails on a Unix socket because it hasn't been created yet (libmilter
will do this correctly on its own based on umask, the milter doesn't need
to do it) (LP: #1849712)
1.1.3 2019-10-06 1.1.3 2019-10-06
- Fix sysv init so it works (LP: #1839487) - Fix sysv init so it works (LP: #1839487)
+1 -1
View File
@@ -37,7 +37,7 @@ an C compiler. Alternately, install these dependencies from distribution/OS
packages and then pip install dkimpy_milter. packages and then pip install dkimpy_milter.
The milter will work with either py3dns (DNS) or dnspython (dns), preferring The milter will work with either py3dns (DNS) or dnspython (dns), preferring
dnspython is both are available. The dkimpy DKIM module also works with dnspython if both are available. The dkimpy DKIM module also works with
either. either.
+2 -4
View File
@@ -37,7 +37,6 @@ from dkimpy_milter.util import drop_privileges
from dkimpy_milter.util import setExceptHook from dkimpy_milter.util import setExceptHook
from dkimpy_milter.util import write_pid from dkimpy_milter.util import write_pid
from dkimpy_milter.util import read_keyfile from dkimpy_milter.util import read_keyfile
from dkimpy_milter.util import own_socketfile
from dkimpy_milter.util import fold from dkimpy_milter.util import fold
__version__ = "1.0.1" __version__ = "1.0.1"
@@ -293,7 +292,7 @@ class dkimMilter(Milter.Base):
except Exception as x: except Exception as x:
self.dkim_comment = str(x) self.dkim_comment = str(x)
if milterconfig.get('Syslog'): if milterconfig.get('Syslog'):
syslog.syslog("check_dkim: {0}".format(x)) syslog.syslog("check_dkim: Internal program fault while verifying: {0}".format(x))
try: try:
# i= is optional and dkimpy is fine if it's not provided # i= is optional and dkimpy is fine if it's not provided
self.header_i = codecs.decode(d.signature_fields.get(b'i'), 'ascii') self.header_i = codecs.decode(d.signature_fields.get(b'i'), 'ascii')
@@ -305,7 +304,7 @@ class dkimMilter(Milter.Base):
except Exception as x: except Exception as x:
self.dkim_comment = str(x) self.dkim_comment = str(x)
if milterconfig.get('Syslog'): if milterconfig.get('Syslog'):
syslog.syslog("check_dkim: {0}".format(x)) syslog.syslog("check_dkim: Internal proram fuault extracting header a or d: {0}".format(x))
self.header_d = None self.header_d = None
if not self.header_a: if not self.header_a:
self.header_a = 'rsa-sha256' self.header_a = 'rsa-sha256'
@@ -401,7 +400,6 @@ def main():
socketname = 'fd:3' socketname = 'fd:3'
if socketname is None: if socketname is None:
socketname = 'local:/var/run/dkimpy-milter/dkimpy-milter.sock' socketname = 'local:/var/run/dkimpy-milter/dkimpy-milter.sock'
own_socketfile(milterconfig, socketname)
drop_privileges(milterconfig) drop_privileges(milterconfig)
sys.stdout.flush() sys.stdout.flush()
if milterconfig.get('Syslog'): if milterconfig.get('Syslog'):
-21
View File
@@ -149,27 +149,6 @@ def write_pid(milterconfig):
return pid return pid
def own_socketfile(milterconfig, sockname=None):
"""If socket is Unix socket, chown to UserID before dropping privileges"""
import os
user, group = user_group(milterconfig.get('UserID'))
offset = None
if sockname is None:
sockname = milterconfig.get('Socket')
if sockname is None:
return
if sockname[:1] == '/':
offset = 0
elif sockname[:6] == "local:":
offset = 6
elif sockname[:5] == "unix:":
offset = 5
if offset is not None:
if os.path.exists(sockname[offset:]):
os.chown(sockname[offset:], user, group)
def read_keyfile(milterconfig, keytype): def read_keyfile(milterconfig, keytype):
"""Read private key from file.""" """Read private key from file."""
import syslog import syslog
+1 -1
View File
@@ -30,7 +30,7 @@ except ImportError: # If PyDNS is not installed, prefer dnspython
setup( setup(
name='dkimpy-milter', name='dkimpy-milter',
version='1.1.3', version='1.1.4',
author='Scott Kitterman', author='Scott Kitterman',
author_email='scott@kitterman.com', author_email='scott@kitterman.com',
url='https://launchpad.net/dkimpy-milter', url='https://launchpad.net/dkimpy-milter',