Codebase list dkimpy-milter / upstream/1.1.4
New upstream version 1.1.4 Scott Kitterman 4 years ago
7 changed file(s) with 13 addition(s) and 29 deletion(s). Raw diff Collapse all Expand all
0 1.1.4 2019-11-22
1 - Make error logging more explicit to aid debugging
2 - Delete own_socketfile to resolve race condition where the permissions
3 change fails on a Unix socket because it hasn't been created yet (libmilter
4 will do this correctly on its own based on umask, the milter doesn't need
5 to do it) (LP: #1849712)
6
07 1.1.3 2019-10-06
18 - Fix sysv init so it works (LP: #1839487)
29
00 Metadata-Version: 1.1
11 Name: dkimpy-milter
2 Version: 1.1.3
2 Version: 1.1.4
33 Summary: Domain Keys Identified Mail (DKIM) signing/verifying milter for Postfix/Sendmail.
44 Home-page: https://launchpad.net/dkimpy-milter
55 Author: Scott Kitterman
3636 packages and then pip install dkimpy_milter.
3737
3838 The milter will work with either py3dns (DNS) or dnspython (dns), preferring
39 dnspython is both are available. The dkimpy DKIM module also works with
39 dnspython if both are available. The dkimpy DKIM module also works with
4040 either.
4141
4242
3636 from dkimpy_milter.util import setExceptHook
3737 from dkimpy_milter.util import write_pid
3838 from dkimpy_milter.util import read_keyfile
39 from dkimpy_milter.util import own_socketfile
4039 from dkimpy_milter.util import fold
4140
4241 __version__ = "1.0.1"
292291 except Exception as x:
293292 self.dkim_comment = str(x)
294293 if milterconfig.get('Syslog'):
295 syslog.syslog("check_dkim: {0}".format(x))
294 syslog.syslog("check_dkim: Internal program fault while verifying: {0}".format(x))
296295 try:
297296 # i= is optional and dkimpy is fine if it's not provided
298297 self.header_i = codecs.decode(d.signature_fields.get(b'i'), 'ascii')
304303 except Exception as x:
305304 self.dkim_comment = str(x)
306305 if milterconfig.get('Syslog'):
307 syslog.syslog("check_dkim: {0}".format(x))
306 syslog.syslog("check_dkim: Internal proram fuault extracting header a or d: {0}".format(x))
308307 self.header_d = None
309308 if not self.header_a:
310309 self.header_a = 'rsa-sha256'
400399 socketname = 'fd:3'
401400 if socketname is None:
402401 socketname = 'local:/var/run/dkimpy-milter/dkimpy-milter.sock'
403 own_socketfile(milterconfig, socketname)
404402 drop_privileges(milterconfig)
405403 sys.stdout.flush()
406404 if milterconfig.get('Syslog'):
148148 return pid
149149
150150
151 def own_socketfile(milterconfig, sockname=None):
152 """If socket is Unix socket, chown to UserID before dropping privileges"""
153 import os
154 user, group = user_group(milterconfig.get('UserID'))
155 offset = None
156 if sockname is None:
157 sockname = milterconfig.get('Socket')
158 if sockname is None:
159 return
160 if sockname[:1] == '/':
161 offset = 0
162 elif sockname[:6] == "local:":
163 offset = 6
164 elif sockname[:5] == "unix:":
165 offset = 5
166
167 if offset is not None:
168 if os.path.exists(sockname[offset:]):
169 os.chown(sockname[offset:], user, group)
170
171
172151 def read_keyfile(milterconfig, keytype):
173152 """Read private key from file."""
174153 import syslog
00 Metadata-Version: 1.1
11 Name: dkimpy-milter
2 Version: 1.1.3
2 Version: 1.1.4
33 Summary: Domain Keys Identified Mail (DKIM) signing/verifying milter for Postfix/Sendmail.
44 Home-page: https://launchpad.net/dkimpy-milter
55 Author: Scott Kitterman
2929
3030 setup(
3131 name='dkimpy-milter',
32 version='1.1.3',
32 version='1.1.4',
3333 author='Scott Kitterman',
3434 author_email='scott@kitterman.com',
3535 url='https://launchpad.net/dkimpy-milter',