From ba6baa40dc1962944658b43608f997c531d4267f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-Elliott=20B=C3=A9cue?= Date: Thu, 1 Oct 2015 23:43:07 +0200 Subject: [PATCH] =?UTF-8?q?Les=20lignes=20TXT=20ont=20une=20longueur=20lim?= =?UTF-8?q?ite=20th=C3=A9orique=20de=20255=20caract=C3=A8res?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gestion/gen_confs/bind.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/gestion/gen_confs/bind.py b/gestion/gen_confs/bind.py index 613d909f..c25b8ee3 100755 --- a/gestion/gen_confs/bind.py +++ b/gestion/gen_confs/bind.py @@ -151,13 +151,17 @@ class TXT(ResourceRecord): """Entrée DNS pour un champ TXT""" def __init__(self, name, value, ttl=None): super(TXT, self).__init__('TXT', name, value, ttl) + if len(self.value) > 200: + self.value = '( "' + '"\n\t\t\t\t"'.join([self.value[x:x+200] for x in xrange(0, len(self.value), 200)]) + '" )' + else: + self.value = '"%s"' % (self.value,) def __str__(self): """Retourne une chaîne printable dans un fichier bind""" if self._ttl: - return '%s\t%s\tIN\t%s\t"%s"' % (self.name, self._ttl, self.r_type, self.value) + return '%s\t%s\tIN\t%s\t%s' % (self.name, self._ttl, self.r_type, self.value) else: - return '%s\tIN\t%s\t"%s"' % (self.name, self.r_type, self.value) + return '%s\tIN\t%s\t%s' % (self.name, self.r_type, self.value) class CNAME(ResourceRecord): """Entrée DNS pour un alias (toto -> redisdead)""" @@ -620,6 +624,12 @@ class dns(gen_config): ], } + DKIM = { + 'crans.org': [ + TXT('mail._domainkey', 'v=DKIM1; k=rsa; p=MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtwkNVd9Mmz8S4WcfuPk0X2drG39gS8+uxAv8igRILgzWeN8j2hjeZesl8pm/1UTVU87bYcdfUgXiGfQy9nR5p/Vmt2kS7sXk9nsJ/VYENgb3IJQ6paWupSTFMyeKycJ4ZHCEZB/bVvifoG6vLKqW5jpsfCiOcfdcgXATn0UPuVx9t93yRrhoEMntMv9TSodjqd3FKCtJUoh5cNQHo0T6dWKtxoIgNi/mvZ92D/IACwu/XOU+Rq9fnoEI8GukBQUR5AkP0B/JrvwWXWX/3EjY8X37ljEX0XUdq/ShzTl5iK+CM83stgkFUQh/rpww5mnxYEW3X4uirJ7VJHmY4KPoIU+2DPjLQj9Hz63CMWY3Ks2pXWzxD3V+GI1aJTMFOv2LeHnI3ScqFaKj9FR4ZKMb0OW2BEFBIY3J3aeo/paRwdbVCMM7twDtZY9uInR/NhVa1v9hlOxwp4/2pGSKQYoN2CkAZ1Alzwf8M3EONLKeiC43JLYwKH1uBB1oikSVhMnLjG0219XvfG/tphyoOqJR/bCc2rdv5pLwKUl4wVuygfpvOw12bcvnTfYuk/BXzVHg9t4H8k/DJR6GAoeNAapXIS8AfAScF8QdKfplhKLJyQGJ6lQ75YD9IwRAN0oV+8NTjl46lI/C+b7mpfXCew+p6YPwfNvV2shiR0Ez8ZGUQIcCAwEAAQ==') + ], + } + NON_CLONABLE_SPFs = { 'crans.org': [ TXT(short_name(_mx), 'v=spf1 mx:crans.org ~all') for _mx in config.dns.MXs @@ -673,7 +683,7 @@ class dns(gen_config): # On met les mêmes MX pour toutes les zones. zone.extend(self.MXs) # Les RR définis ici sont ajoutés aux zones idoines, de façon à se simplifier la vie. - for rr_type in [self.SRVs, self.NAPTRs, self.DSs, self.EXTRAS, self.SPFs, self.NON_CLONABLE_SPFs]: + for rr_type in [self.SRVs, self.NAPTRs, self.DSs, self.EXTRAS, self.SPFs, self.NON_CLONABLE_SPFs, self.DKIM]: if zone.zone_name in rr_type.keys(): zone.extend(rr_type[zone.zone_name]) for m in machines: