aboutsummaryrefslogtreecommitdiffstats
path: root/ddns
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
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')
-rw-r--r--ddns/__init__.py7
-rw-r--r--ddns/auth.py4
-rw-r--r--ddns/backend/dnsupdate.py11
-rw-r--r--ddns/cfg_parser.py8
-rw-r--r--ddns/frontend/dyn_com.py4
5 files changed, 15 insertions, 19 deletions
diff --git a/ddns/__init__.py b/ddns/__init__.py
index b0de21e..7e4bc7b 100644
--- a/ddns/__init__.py
+++ b/ddns/__init__.py
@@ -1,8 +1,8 @@
-from flask import Flask, request, Response
+from flask import Flask
import ddns.cfg_parser
-cfg_parser.cfg_file = '/home/marius/ddns/ddns.cfg'
-cfg_parser.read_config()
+#cfg_parser.cfg_file = 'ddns.cfg'
+#cfg_parser.read_config()
app = Flask(__name__)
@@ -11,6 +11,5 @@ def index():
app.add_url_rule('/', 'index', index)
-#from ddns.frontend.dyn_com import dyn_com
import ddns.frontend.dyn_com
app.add_url_rule('/nic/update', 'ddns.frontend.dyn_com.dyn_com', ddns.frontend.dyn_com.dyn_com)
diff --git a/ddns/auth.py b/ddns/auth.py
index 6624aad..030d239 100644
--- a/ddns/auth.py
+++ b/ddns/auth.py
@@ -4,10 +4,8 @@ from functools import wraps
import ddns.cfg_parser
import hash
-auth_cfg = ddns.cfg_parser.cfg['users']
-
def check_auth(username, password):
- for user in auth_cfg:
+ for user in ddns.cfg_parser.cfg.get('users'):
if username == user['username'] and \
hash.hash(user['hash'], password) == user['password']:
return True
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'])
-
diff --git a/ddns/cfg_parser.py b/ddns/cfg_parser.py
index e8134cd..8defb71 100644
--- a/ddns/cfg_parser.py
+++ b/ddns/cfg_parser.py
@@ -9,9 +9,9 @@ def read_config():
global cfg
if not cfg_file or not os.path.exists(cfg_file):
- return None
+ cfg = None
+ return
with io.open(cfg_file, 'r') as fp:
- _cfg = yaml.load(fp)
-
- cfg = _cfg
+ cfg = yaml.load(fp)
+ fp.close()
diff --git a/ddns/frontend/dyn_com.py b/ddns/frontend/dyn_com.py
index bbd61e5..5ef6e11 100644
--- a/ddns/frontend/dyn_com.py
+++ b/ddns/frontend/dyn_com.py
@@ -1,6 +1,6 @@
-from flask import request, Response
-import ddns.backend.dnsupdate
+from flask import request
from IPy import IP
+import ddns.backend.dnsupdate
import ddns.auth
import ddns.cfg_parser