Champs TXT correctement gérés et DROP des RR SPF (RFC 7208)

This commit is contained in:
Pierre-Elliott Bécue 2015-03-03 14:01:51 +01:00
parent 17461ccf7f
commit 64a59be2b7

View file

@ -152,6 +152,13 @@ class TXT(ResourceRecord):
def __init__(self, name, value, ttl=None):
super(TXT, self).__init__('TXT', name, value, ttl)
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)
else:
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)"""
def __init__(self, name, value, ttl=None):
@ -175,11 +182,6 @@ class NS(ResourceRecord):
def __init__(self, name, value, ttl=None):
super(NS, self).__init__('NS', name, value, ttl)
class SPF(ResourceRecord):
"""Entrée DNS pour les champs SPF"""
def __init__(self, name, value, ttl=None):
super(SPF, self).__init__('SPF', name, value, ttl)
class SRV(ResourceRecord):
"""Entrée DNS pour les champs SRV"""
def __init__(self, service, proto, priority, weight, port, target, ttl=None):
@ -607,15 +609,12 @@ class dns(gen_config):
SPFs = {
'crans.org': [
SPF('@', 'v=spf1 mx ~all'),
TXT('@', 'v=spf1 mx ~all'),
],
}
NON_CLONABLE_SPFs = {
'crans.org': [
SPF(_mx, 'v=spf1 mx:crans.org ~all') for _mx in config.dns.MXs
] + [
TXT(_mx, 'v=spf1 mx:crans.org ~all') for _mx in config.dns.MXs
],
}