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')
|
||||
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.
|
||||
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user