diff --git a/main.py b/main.py index 012acfb..8824b9d 100755 --- a/main.py +++ b/main.py @@ -13,7 +13,8 @@ api_hostname = config.get('Re2o', 'hostname') api_password = config.get('Re2o', 'password') api_username = config.get('Re2o', 'username') -template_soa = ("{zone} IN SOA ns.{zone}. {mail} (\n" +template_soa = ("$ORIGIN {zone}.\n" + "@ IN SOA {ns} {mail} (\n" " {serial} ; serial\n" " {refresh} ; refresh\n" " {retry} ; retry\n" @@ -70,10 +71,14 @@ def write_dns_files(api_client): soa_mail_fields = zone['soa']['mail'].split('@') soa_mail = "{}.{}.".format(soa_mail_fields[0].replace('.', '\\.'), soa_mail_fields[1]) - + if zone['ns_records']: + ns = zone['ns_records'][0]['target'] + else: + ns = "ns."+zone_name+"." soa = template_soa.format(zone=zone_name, mail=soa_mail, serial=serial, + ns=ns, refresh=zone['soa']['refresh'], retry=zone['soa']['retry'], expire=zone['soa']['expire'], @@ -176,8 +181,11 @@ def write_dns_reverse_file(api_client): # We start by defining the soa, ns, mx which are comon to v4/v6 now = datetime.datetime.now(datetime.timezone.utc) serial = now.strftime("%Y%m%d") + str(int(100*(now.hour*3600 + now.minute*60 + now.second)/86400)) - extension = zone['extension'] + if zone['ns_records']: + ns = zone['ns_records'][0]['target'] + else: + ns = "ns"+extension+"." soa_mail_fields = zone['soa']['mail'].split('@') soa_mail = "{}.{}.".format(soa_mail_fields[0].replace('.', '\\.'), soa_mail_fields[1]) @@ -228,6 +236,7 @@ def write_dns_reverse_file(api_client): soa = template_soa.format(zone=zone_name, mail=soa_mail, serial=serial, + ns=ns, refresh=zone['soa']['refresh'], retry=zone['soa']['retry'], expire=zone['soa']['expire'], @@ -259,6 +268,7 @@ def write_dns_reverse_file(api_client): soa = template_soa.format(zone=zone6_name, mail=soa_mail, serial=serial, + ns=ns, refresh=zone['soa']['refresh'], retry=zone['soa']['retry'], expire=zone['soa']['expire'],