From 16fe98b9a7d580e818346a8850e4755a65dc478c Mon Sep 17 00:00:00 2001 From: Marius Halden Date: Mon, 17 Mar 2014 23:31:21 +0100 Subject: Adjusted config format --- ddns.cfg | 17 +++++++---------- ddns/backend/dnsupdate.py | 6 ++++++ ddns/frontend/dyn_com.py | 9 ++++----- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/ddns.cfg b/ddns.cfg index 8e6fe1c..07b3b7c 100644 --- a/ddns.cfg +++ b/ddns.cfg @@ -1,30 +1,27 @@ # vim: ai ts=2 sts=2 sw=2 et users: - - &user-admin - username: admin + - username: admin password: password hash: None - - &user-user1 - username: user1 + - username: user1 password: password hash: None dnskeys: - - &dnskey-test-key - name: test-key + - name: test-key key: key algorithm: HMAC-MD5 zones: - name: test.example.org. ns: ns.example.org - key: *dnskey-test-key + key: test-key domains: - domain: host1 # host1.test.example.org users: - - *user-admin + - admin - domain: host2 # host2.test.example.org users: - - *user-admin - - *user-user1 + - admin + - user1 diff --git a/ddns/backend/dnsupdate.py b/ddns/backend/dnsupdate.py index 8257540..b64cefd 100644 --- a/ddns/backend/dnsupdate.py +++ b/ddns/backend/dnsupdate.py @@ -27,6 +27,12 @@ def get_zone(name): return zone return None +def get_key(name): + for key in cfg['dnskeys']: + if key['name'] == name: + return key + return None + def gen_keyring(dnskeys): global keyring diff --git a/ddns/frontend/dyn_com.py b/ddns/frontend/dyn_com.py index 9b803ec..e0a1ebb 100644 --- a/ddns/frontend/dyn_com.py +++ b/ddns/frontend/dyn_com.py @@ -40,11 +40,10 @@ def dyn_com(): if zone_name == zone['name']: for domain in zone['domains']: if domain['domain'] == hostname: - for user in domain['users']: - if request.authorization.username == user['username']: - ddns.backend.dnsupdate.update_dns(zone_name, hostname, ip) - # We should probably check something here... - return "good" + if request.authorization.username in users: + ddns.backend.dnsupdate.update_dns(zone_name, hostname, ip) + # We should probably check something here... + return "good" return auth.authenticate("!yours") return "nohost2" raise RuntimeError("ooops") -- cgit v1.2.3