diff options
author | Max Christian Pohle | 2019-11-13 00:23:06 +0100 |
---|---|---|
committer | Max Christian Pohle | 2019-11-13 00:27:47 +0100 |
commit | 1dcb4c6cc058800d8995bd3489ce840ff07055ec (patch) | |
tree | d16c02338c38d5bd06158fbcc021e52986b8b837 /wsgi.py | |
parent | 151c39e6aa8e9ec9d9cbe31bcca81ada71d9c72b (diff) | |
download | pdnsupdate-1dcb4c6cc058800d8995bd3489ce840ff07055ec.tar.bz2 pdnsupdate-1dcb4c6cc058800d8995bd3489ce840ff07055ec.zip |
Replacing the old php with a python script
python was already installed in my dns jail, so this has very little
overhead compared to a full php installation.
Diffstat (limited to 'wsgi.py')
-rw-r--r-- | wsgi.py | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -0,0 +1,19 @@ | |||
1 | #!/usr/bin/env python3.6 | ||
2 | |||
3 | import time | ||
4 | import re | ||
5 | import subprocess | ||
6 | from cgi import parse_qs | ||
7 | |||
8 | def application(environ, start_response): | ||
9 | d = parse_qs(environ['QUERY_STRING']) | ||
10 | |||
11 | start_response('200 OK', [('Content-Type', 'text/plain')]) | ||
12 | if re.match('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', d.get('ip', ['0'])[0]): | ||
13 | ip = d.get('ip', ['0'])[0].encode() | ||
14 | if re.match('[0-9a-z]+', d.get('host', [''])[0]): | ||
15 | host = d.get('host', ['0'])[0].encode() | ||
16 | yield(subprocess.run(["/usr/local/bin/pdnsutil", "delete-rrset", "wire-me.de", host, "A"], stdout=subprocess.PIPE).stdout) | ||
17 | yield(subprocess.run(["/usr/local/bin/pdnsutil", "add-record", "wire-me.de", host, "A", ip], stdout=subprocess.PIPE)) | ||
18 | yield(subprocess.run(["/usr/local/bin/pdnsutil", "list-zone", "wire-me.de"], stdout=subprocess.PIPE).stdout) | ||
19 | |||