From bab37262b3e5401577046b91e4f7e9de0513c3a3 Mon Sep 17 00:00:00 2001 From: nd Date: Sun, 13 Oct 2019 17:44:37 +0200 Subject: [PATCH] fixed some bugs --- templates/pdns-letsencrypt.py.j2 | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/templates/pdns-letsencrypt.py.j2 b/templates/pdns-letsencrypt.py.j2 index 230a9f2..83872eb 100644 --- a/templates/pdns-letsencrypt.py.j2 +++ b/templates/pdns-letsencrypt.py.j2 @@ -1,14 +1,14 @@ #!/usr/bin/env python3 import sys from sys import stdin, stdout -import logging +import socket import sqlite3 def setupdb(): - conn = sqlite3.connect('{{ powerdns.letsencrypthandler.dbpath }}') + conn = sqlite3.connect('{{ powerdns.letsencrypthandler.dbpath }}', isolation_level=None) conn.executescript(""" CREATE TABLE IF NOT EXISTS challenges ( - q TEXT, + q TEXT NOT NULL PRIMARY KEY, value TEXT, timestamp DEFAULT (strftime('%s','now')) ) @@ -23,11 +23,11 @@ def get_challenge(db, path): if result: return result[0] else: - return 'NO DATA' + return 'NO DATA - ' + socket.gethostname() def add_challenge(db, path, value): c = db.cursor() - c.execute('INSERT INTO challenges (q, value) VALUES(?, ?)', (path,value,)) + c.execute('REPLACE INTO challenges (q, value) VALUES(?, ?)', (path,value,)) db.commit() def main_query(): @@ -42,8 +42,8 @@ def main_query(): stdout.write("DATA\t" + qname + "\t" + qclass + "\t" + qtype + "\t300\t" + id + "\t") stdout.write("example.com. example.example.com. 1 1d 2h 4w 1h\n") else: - stdout.write("DATA\t" + qname + "\t" + qclass + "\tTXT\t300\t" + id + "\t") - stdout.write('"' + get_challenge(db, qname) + '"\n') + stdout.write("DATA\t" + qname + "\t" + qclass + "\tTXT\t1\t" + id + "\t") + stdout.write('"' + get_challenge(db, qname.lower()) + '"\n') stdout.write("LOG\tletsencrypt pipe handler got query: '" + data + "'\n") stdout.write("END\n") stdout.flush()