aboutsummaryrefslogtreecommitdiffstats
path: root/ddns/backend/dnsupdate.py
diff options
context:
space:
mode:
authorMarius Halden <marius.h@lden.org>2014-03-17 19:10:00 +0100
committerMarius Halden <marius.h@lden.org>2014-03-17 19:10:00 +0100
commitd398793a759acc1d8bf2484f3533d0e9744bd429 (patch)
treece453af337ad0fb94aacb6b445ce01cd7e1f717d /ddns/backend/dnsupdate.py
parent144427894721bb54baa08a7584e850277681c71b (diff)
downloadDDNS.py-d398793a759acc1d8bf2484f3533d0e9744bd429.tar.gz
DDNS.py-d398793a759acc1d8bf2484f3533d0e9744bd429.tar.bz2
DDNS.py-d398793a759acc1d8bf2484f3533d0e9744bd429.tar.xz
Chaged where the configfile is defined and how the config is used
Diffstat (limited to 'ddns/backend/dnsupdate.py')
-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'])
-