Add option to sign for subdomains - Thanks to Sagi for the patch
This commit is contained in:
@@ -183,6 +183,8 @@ class dkimMilter(Milter.Base):
|
|||||||
domain = milterconfig.get('Domain')
|
domain = milterconfig.get('Domain')
|
||||||
else:
|
else:
|
||||||
domain = ''
|
domain = ''
|
||||||
|
if milterconfig.get('SubDomains'):
|
||||||
|
self.fdomain = _get_parent_domain(self.fdomain, domain)
|
||||||
if ((self.fdomain in domain) and not milterconfig.get('Mode') == 'v'
|
if ((self.fdomain in domain) and not milterconfig.get('Mode') == 'v'
|
||||||
and not self.external_connection):
|
and not self.external_connection):
|
||||||
txt = self.fp.read()
|
txt = self.fp.read()
|
||||||
@@ -325,6 +327,16 @@ class dkimMilter(Milter.Base):
|
|||||||
)
|
)
|
||||||
return
|
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():
|
def main():
|
||||||
# Ugh, but there's no easy way around this.
|
# Ugh, but there's no easy way around this.
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ defaultConfigData = {
|
|||||||
'MacroList': '',
|
'MacroList': '',
|
||||||
'MacroListVerify': '',
|
'MacroListVerify': '',
|
||||||
'DNSOverride': None,
|
'DNSOverride': None,
|
||||||
|
'SubDomains': False,
|
||||||
'debugLevel': 0 # Undocumented config item for developer use
|
'debugLevel': 0 # Undocumented config item for developer use
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -327,6 +328,7 @@ def _readConfigFile(path, configData=None, configGlobal={}):
|
|||||||
'PidFile': 'str',
|
'PidFile': 'str',
|
||||||
'UserID': 'str',
|
'UserID': 'str',
|
||||||
'Domain': 'dataset',
|
'Domain': 'dataset',
|
||||||
|
'SubDomains': 'bool',
|
||||||
'KeyFile': 'str',
|
'KeyFile': 'str',
|
||||||
'KeyFileEd25519': 'str',
|
'KeyFileEd25519': 'str',
|
||||||
'Selector': 'str',
|
'Selector': 'str',
|
||||||
|
|||||||
Reference in New Issue
Block a user