aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Halden <marius.h@lden.org>2014-03-17 23:31:21 +0100
committerMarius Halden <marius.h@lden.org>2014-03-17 23:31:21 +0100
commit16fe98b9a7d580e818346a8850e4755a65dc478c (patch)
tree6c8bf96d38bf4111f7b526e2fbe49342265a7eef
parent2c8a22216ef9c6cb9c6e6741f9c54acfd3262a72 (diff)
downloadDDNS.py-16fe98b9a7d580e818346a8850e4755a65dc478c.tar.gz
DDNS.py-16fe98b9a7d580e818346a8850e4755a65dc478c.tar.bz2
DDNS.py-16fe98b9a7d580e818346a8850e4755a65dc478c.tar.xz
Adjusted config format
-rw-r--r--ddns.cfg17
-rw-r--r--ddns/backend/dnsupdate.py6
-rw-r--r--ddns/frontend/dyn_com.py9
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")