From fb10c7090c649fe51f9cde82e4cf7252f011d72d Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Mon, 4 Jul 2022 19:04:44 +0200 Subject: [PATCH] auth: Fix getTSIGKeys() return value in GSQL and LMDB backends These Bind and remote backends return true when at least a TSIG key is returned, as expected by the API and pdnsutil code, but the GSQL backend returned false if at least a key was returned and true otherwise. The LMDB backend always returned false. This caused `pdnsutil b2b-migrate` not to migrate TSIG keys from a GSQL or LMDB backend, amongst other things. --- modules/lmdbbackend/lmdbbackend.cc | 2 +- pdns/backends/gsql/gsqlbackend.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/lmdbbackend/lmdbbackend.cc b/modules/lmdbbackend/lmdbbackend.cc index e287a0b892..92dbb97293 100644 --- a/modules/lmdbbackend/lmdbbackend.cc +++ b/modules/lmdbbackend/lmdbbackend.cc @@ -1745,7 +1745,7 @@ bool LMDBBackend::getTSIGKeys(std::vector& keys) for (auto iter = txn.begin(); iter != txn.end(); ++iter) { keys.push_back(*iter); } - return false; + return !keys.empty(); } class LMDBFactory : public BackendFactory diff --git a/pdns/backends/gsql/gsqlbackend.cc b/pdns/backends/gsql/gsqlbackend.cc index dc9a319478..ab8ef9f5b0 100644 --- a/pdns/backends/gsql/gsqlbackend.cc +++ b/pdns/backends/gsql/gsqlbackend.cc @@ -976,7 +976,7 @@ bool GSQLBackend::getTSIGKeys(std::vector< struct TSIGKey > &keys) throw PDNSException("GSQLBackend unable to retrieve TSIG keys: "+e.txtReason()); } - return keys.empty(); + return !keys.empty(); } bool GSQLBackend::getDomainKeys(const DNSName& name, std::vector& keys) -- 2.47.2