Add option to sign for subdomains - Thanks to Sagi for the patch

This commit is contained in:
Scott Kitterman
2019-04-12 22:31:24 -04:00
parent 290a37b99c
commit 8dc3ac6474
2 changed files with 14 additions and 0 deletions
+12
View File
@@ -183,6 +183,8 @@ class dkimMilter(Milter.Base):
domain = milterconfig.get('Domain')
else:
domain = ''
if milterconfig.get('SubDomains'):
self.fdomain = _get_parent_domain(self.fdomain, domain)
if ((self.fdomain in domain) and not milterconfig.get('Mode') == 'v'
and not self.external_connection):
txt = self.fp.read()
@@ -325,6 +327,16 @@ class dkimMilter(Milter.Base):
)
return
# get parent domain to be signed for if fdomain is a subdomain
def _get_parent_domain(fdomain, domains):
for domain in domains:
rhs = '.'+domain
# compare right hand side of fdomain against .domain
if fdomain[-len(rhs):] == rhs:
# return parent domain on match
return domain
# or return the fdomain itself
return fdomain
def main():
# Ugh, but there's no easy way around this.
+2
View File
@@ -49,6 +49,7 @@ defaultConfigData = {
'MacroList': '',
'MacroListVerify': '',
'DNSOverride': None,
'SubDomains': False,
'debugLevel': 0 # Undocumented config item for developer use
}
@@ -327,6 +328,7 @@ def _readConfigFile(path, configData=None, configGlobal={}):
'PidFile': 'str',
'UserID': 'str',
'Domain': 'dataset',
'SubDomains': 'bool',
'KeyFile': 'str',
'KeyFileEd25519': 'str',
'Selector': 'str',