added funktion to add values

This commit is contained in:
nd 2019-09-30 02:17:18 +02:00
parent c2a6dfb887
commit 3f14417641
No known key found for this signature in database
GPG key ID: 21B5CD4DEE3670E9

View file

@ -1,15 +1,9 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import sys import sys
from sys import stdin, stdout from sys import stdin, stdout
from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
import logging import logging
import sqlite3 import sqlite3
def parse_args(args):
parser = ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter)
parser.add_argument('--debug', action='store_true', default=False, help='Enable debugging output')
return parser.parse_args(args)
def setupdb(): def setupdb():
conn = sqlite3.connect('{{ powerdns.letsencrypthandler.dbpath }}') conn = sqlite3.connect('{{ powerdns.letsencrypthandler.dbpath }}')
conn.executescript(""" conn.executescript("""
@ -22,15 +16,20 @@ def setupdb():
conn.commit() conn.commit()
return conn return conn
def get_secret(db, path): def get_challenge(db, path):
c = db.cursor() c = db.cursor()
c.execute('SELECT * FROM challenges WHERE q = ?', (path,)) c.execute('SELECT value FROM challenges WHERE q = ?', (path,))
result = c.fetchone() result = c.fetchone()
if result: if result:
return result return result[0]
else: else:
return 'NO DATA' return 'NO DATA'
def add_challenge(db, path, value):
c = db.cursor()
c.execute('INSERT INTO challenges (q, value) VALUES(?, ?)', (path,value,))
db.commit()
def main_query(): def main_query():
db = setupdb() db = setupdb()
data = stdin.readline() data = stdin.readline()
@ -44,17 +43,20 @@ def main_query():
stdout.write("example.com. example.example.com. 1 1d 2h 4w 1h\n") stdout.write("example.com. example.example.com. 1 1d 2h 4w 1h\n")
else: else:
stdout.write("DATA\t" + qname + "\t" + qclass + "\tTXT\t300\t" + id + "\t") stdout.write("DATA\t" + qname + "\t" + qclass + "\tTXT\t300\t" + id + "\t")
stdout.write('"' + get_secret(db, qname) + '"\n') stdout.write('"' + get_challenge(db, qname) + '"\n')
stdout.write("LOG\tletsencrypt pipe handler got query: '" + data + "'\n") stdout.write("LOG\tletsencrypt pipe handler got query: '" + data + "'\n")
stdout.write("END\n") stdout.write("END\n")
stdout.flush() stdout.flush()
def main_add_challange(db): def main_add_challenge():
db = setupdb() db = setupdb()
pass add_challenge(db ,sys.argv[1], sys.argv[2])
def main(): def main():
main_query() if len(sys.argv) == 3:
main_add_challenge()
else:
main_query()
if __name__ == '__main__': if __name__ == '__main__':
main() main()