aboutsummaryrefslogtreecommitdiff
path: root/wsgi.py
diff options
context:
space:
mode:
Diffstat (limited to 'wsgi.py')
-rw-r--r--wsgi.py22
1 files changed, 12 insertions, 10 deletions
diff --git a/wsgi.py b/wsgi.py
index 49224b9..cfa1326 100644
--- a/wsgi.py
+++ b/wsgi.py
@@ -1,19 +1,21 @@
1#!/usr/bin/env python3.6 1#!/usr/bin/env python3.6
2
3import time 2import time
4import re 3import re
5import subprocess 4import subprocess
6from cgi import parse_qs 5from cgi import parse_qs
7 6
8def application(environ, start_response): 7zone = "wire-me.de"
9 d = parse_qs(environ['QUERY_STRING'])
10 8
9def application(environ, start_response):
11 start_response('200 OK', [('Content-Type', 'text/plain')]) 10 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]): 11 args = parse_qs(environ['QUERY_STRING'])
13 ip = d.get('ip', ['0'])[0].encode() 12 host = args.get('host', ['0'])[0]
14 if re.match('[0-9a-z]+', d.get('host', [''])[0]): 13
15 host = d.get('host', ['0'])[0].encode() 14 if re.match('[0-9a-z-_]+', host):
16 yield(subprocess.run(["/usr/local/bin/pdnsutil", "delete-rrset", "wire-me.de", host, "A"], stdout=subprocess.PIPE).stdout) 15 yield(subprocess.run(["/usr/local/bin/pdnsutil", "delete-rrset", zone, 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)) 16
18 yield(subprocess.run(["/usr/local/bin/pdnsutil", "list-zone", "wire-me.de"], stdout=subprocess.PIPE).stdout) 17 for ip in args.get('ip', ['0']):
18 if re.match('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', ip):
19 yield(subprocess.run(["/usr/local/bin/pdnsutil", "add-record", zone, host, "A", ip], stdout=subprocess.PIPE))
19 20
21 yield(subprocess.run(["/usr/local/bin/pdnsutil", "list-zone", zone], stdout=subprocess.PIPE).stdout)
..