From ff7e2c1db8157d1ed852b2fe7a7913beaf4ef337 Mon Sep 17 00:00:00 2001 From: nd Date: Fri, 1 Nov 2019 16:00:13 +0100 Subject: [PATCH] support multiple txt records at once --- templates/pdns-letsencrypt.py.j2 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/templates/pdns-letsencrypt.py.j2 b/templates/pdns-letsencrypt.py.j2 index 83872eb..28b7241 100644 --- a/templates/pdns-letsencrypt.py.j2 +++ b/templates/pdns-letsencrypt.py.j2 @@ -8,7 +8,7 @@ def setupdb(): conn = sqlite3.connect('{{ powerdns.letsencrypthandler.dbpath }}', isolation_level=None) conn.executescript(""" CREATE TABLE IF NOT EXISTS challenges ( - q TEXT NOT NULL PRIMARY KEY, + q TEXT NOT NULL, value TEXT, timestamp DEFAULT (strftime('%s','now')) ) @@ -21,9 +21,9 @@ def get_challenge(db, path): c.execute('SELECT value FROM challenges WHERE q = ?', (path,)) result = c.fetchone() if result: - return result[0] + return result else: - return 'NO DATA - ' + socket.gethostname() + return ['NO DATA - ' + socket.gethostname()] def add_challenge(db, path, value): c = db.cursor() @@ -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\t1\t" + id + "\t") - stdout.write('"' + get_challenge(db, qname.lower()) + '"\n') + for i in get_challenge(db, qname.lower()): + stdout.write("DATA\t" + qname + "\t" + qclass + "\tTXT\t1\t" + id + '\t"' + i + '"\n') stdout.write("LOG\tletsencrypt pipe handler got query: '" + data + "'\n") stdout.write("END\n") stdout.flush()