aboutsummaryrefslogtreecommitdiffstats
path: root/ddns/backend
diff options
context:
space:
mode:
Diffstat (limited to 'ddns/backend')
-rw-r--r--ddns/backend/dnsupdate.py11
1 files changed, 5 insertions, 6 deletions
diff --git a/ddns/backend/dnsupdate.py b/ddns/backend/dnsupdate.py
index cd1dee2..650759f 100644
--- a/ddns/backend/dnsupdate.py
+++ b/ddns/backend/dnsupdate.py
@@ -5,7 +5,6 @@ import dns.update
import dns.resolver
import ddns.cfg_parser
-zone_cfg = None
keyring = None
def resolve(domain, rtype='A'):
@@ -23,7 +22,7 @@ def check_ip(domain, ip, rtype='A'):
return False
def get_zone(name):
- for zone in zone_cfg:
+ for zone in ddns.cfg_parser.cfg.get('zones'):
if zone['name'] == name:
return zone
return None
@@ -53,6 +52,10 @@ def get_hash_method(hash_name):
return dns.tsig.default_algorithm
def update_dns(zone, hostname, ip, ttl=300):
+ global keyring
+ if not keyring:
+ keyring = gen_keyring(ddns.cfg_parser.cfg.get('dnskeys'))
+
zone = get_zone(zone)
dns_srv = zone['ns']
@@ -68,7 +71,3 @@ def update_dns(zone, hostname, ip, ttl=300):
# if not check_ip(hostname+'.'+zone['name'], ip, rtype):
update.replace(hostname.encode('ascii'), ttl, rtype, ip.strNormal(0))
res = dns.query.tcp(update, dns_srv)
-
-zone_cfg = ddns.cfg_parser.cfg['zones']
-keyring = gen_keyring(ddns.cfg_parser.cfg['dnskeys'])
-