- 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)
This commit is contained in:
@@ -21,6 +21,10 @@
|
|||||||
- Make error logging more explicit to aid debugging
|
- Make error logging more explicit to aid debugging
|
||||||
- Remove SigningTableEd25519 from documentation - it was never implemented
|
- Remove SigningTableEd25519 from documentation - it was never implemented
|
||||||
and a per algorithm signing table turns out not to be needed
|
and a per algorithm signing table turns out not to be needed
|
||||||
|
- 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.0 2019-04-12
|
1.1.0 2019-04-12
|
||||||
- Add SubDomains option to enable signing for sub-domains (LP: #1811535)
|
- Add SubDomains option to enable signing for sub-domains (LP: #1811535)
|
||||||
|
|||||||
@@ -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 get_keys
|
from dkimpy_milter.util import get_keys
|
||||||
from dkimpy_milter.util import own_socketfile
|
|
||||||
from dkimpy_milter.util import fold
|
from dkimpy_milter.util import fold
|
||||||
|
|
||||||
__version__ = "1.2.0"
|
__version__ = "1.2.0"
|
||||||
@@ -444,7 +443,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)
|
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
if milterconfig.get('Syslog'):
|
if milterconfig.get('Syslog'):
|
||||||
syslog.syslog('dkimpy-milter starting:{0} user:{1}'
|
syslog.syslog('dkimpy-milter starting:{0} user:{1}'
|
||||||
|
|||||||
@@ -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(keyfile, milterconfig):
|
def read_keyfile(keyfile, milterconfig):
|
||||||
"""Read private key from file."""
|
"""Read private key from file."""
|
||||||
import syslog
|
import syslog
|
||||||
|
|||||||
Reference in New Issue
Block a user