[bind] Du punycode dans la zone tv \(^_^)/
This commit is contained in:
parent
37c77d88d0
commit
cd4000b45d
1 changed files with 16 additions and 4 deletions
|
@ -229,11 +229,16 @@ zone "%(NOM_zone)s" {
|
||||||
return ('.'.join(rev_dns_a[1:]), 1)
|
return ('.'.join(rev_dns_a[1:]), 1)
|
||||||
elif n.version == 6:
|
elif n.version == 6:
|
||||||
return ('.'.join(rev_dns_a[(128-n.prefixlen)/4:]), (128-n.prefixlen)/4)
|
return ('.'.join(rev_dns_a[(128-n.prefixlen)/4:]), (128-n.prefixlen)/4)
|
||||||
|
|
||||||
|
|
||||||
|
def is_ascii(self, s):
|
||||||
|
return all(ord(c) < 128 for c in s)
|
||||||
|
|
||||||
def gen_tv(self):
|
def gen_tv(self):
|
||||||
|
from unidecode import unidecode
|
||||||
serial = time.time() + 1000000000
|
serial = time.time() + 1000000000
|
||||||
zone_reverse=netv4_to_arpa(config.NETs['multicast'][0])[0]
|
zone_reverse=netv4_to_arpa(config.NETs['multicast'][0])[0]
|
||||||
sap=open('/tmp/chaines_recup_sap.txt').readlines()
|
sap=open('/usr/scripts/var/tv/sap.txt').readlines()
|
||||||
|
|
||||||
DNS='; DNS de la zone par ordre de priorité\n'
|
DNS='; DNS de la zone par ordre de priorité\n'
|
||||||
for d in self.DELEG[self.zone_multicast] :
|
for d in self.DELEG[self.zone_multicast] :
|
||||||
|
@ -250,11 +255,18 @@ zone "%(NOM_zone)s" {
|
||||||
nom=nom.replace('&','and') # on enlève les TNT## des noms
|
nom=nom.replace('&','and') # on enlève les TNT## des noms
|
||||||
nom=re.sub(' +([^ ])','-\g<1>',nom) # on remplaces les espaces intérieur par un tiret
|
nom=re.sub(' +([^ ])','-\g<1>',nom) # on remplaces les espaces intérieur par un tiret
|
||||||
nom=re.sub('[ .():,"\'+<>]','',nom) # on enlève tous les caractères illégaux
|
nom=re.sub('[ .():,"\'+<>]','',nom) # on enlève tous les caractères illégaux
|
||||||
nom=nom.lower()
|
nom=unicode(nom.lower(), 'utf-8')
|
||||||
|
nom_ascii=unidecode(nom)
|
||||||
|
if not self.is_ascii(nom):
|
||||||
|
nom="xn--%s" % nom.encode('punycode')
|
||||||
|
else:
|
||||||
|
nom=None
|
||||||
try:
|
try:
|
||||||
[ip1,ip2,ip3,ip4]=ip.strip().split('.')
|
[ip1,ip2,ip3,ip4]=ip.strip().split('.')
|
||||||
lignes_r += '%s.%s.%s\tIN\tPTR\t%s.%s.\n' % (ip4,ip3,ip2,nom,self.zone_multicast)
|
lignes_r += '%s.%s.%s\tIN\tPTR\t%s.%s.\n' % (ip4,ip3,ip2,nom_ascii,self.zone_multicast)
|
||||||
lignes_d +='%s\tIN\tA\t%s' % (nom,ip)
|
lignes_d +='%s\tIN\tA\t%s' % (nom_ascii,ip)
|
||||||
|
if nom:
|
||||||
|
lignes_d +='%s\tIN\tA\t%s' % (nom,ip)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
# Écriture de la zone directe
|
# Écriture de la zone directe
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue