#1420 fix DKIM bind record

TXT records longer than 255 characters need split into chunks

fixes #1420
This commit is contained in:
Andrew Fyfe
2018-03-04 02:39:38 +00:00
parent f4b1047363
commit b71eff661d
+15 -2
View File
@@ -206,8 +206,21 @@ class Domain(AdminObject):
@property
def bind_format_dkim_public_key(self):
"""Return DKIM public key using Bind format."""
return "{}._domainkey.{}. 10800 IN TXT \"v=DKIM1; k=rsa; p={}\"".format(
self.dkim_key_selector, self.name, self.dkim_public_key)
record = "v=DKIM1;k=rsa;p=%s" % self.dkim_public_key
# TXT records longer than 255 characters need split into chunks
# split record into 74 character chunks (+2 for indent, +2 for quotes(")
# == 78 characters) to make more readable in text editors.
split_record = []
while record:
if len(record) > 74:
split_record.append(" \"%s\"" % record[:74])
record = record[74:]
else:
split_record.append(" \"%s\"" % record)
break
record = "\n".join(split_record)
return "{}._domainkey.{}. 10800 IN TXT (\n{})".format(
self.dkim_key_selector, self.name, record)
def add_admin(self, account):
"""Add a new administrator to this domain.