From: Miod Vallat Date: Fri, 18 Apr 2025 10:59:14 +0000 (+0200) Subject: Fail more gracefully in default getBeforeAndAfterNamesAbsolute. X-Git-Tag: dnsdist-2.0.0-alpha2~65^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=029fa64070ae52d949c432b0fe56a283693216f6;p=thirdparty%2Fpdns.git Fail more gracefully in default getBeforeAndAfterNamesAbsolute. If invoked on a non-DNSSEC-capable backend, it should fail with a visible error message rather than bluntly abort(). --- diff --git a/pdns/dnsbackend.hh b/pdns/dnsbackend.hh index 5b670f439a..2cf72f6862 100644 --- a/pdns/dnsbackend.hh +++ b/pdns/dnsbackend.hh @@ -247,11 +247,9 @@ public: virtual bool getTSIGKeys(std::vector& /* keys */) { return false; } virtual bool deleteTSIGKey(const DNSName& /* name */) { return false; } - virtual bool getBeforeAndAfterNamesAbsolute(uint32_t /* id */, const DNSName& /* qname */, DNSName& /* unhashed */, DNSName& /* before */, DNSName& /* after */) + virtual bool getBeforeAndAfterNamesAbsolute(uint32_t /* id */, const DNSName& qname, DNSName& /* unhashed */, DNSName& /* before */, DNSName& /* after */) { - std::cerr << "Default beforeAndAfterAbsolute called!" << std::endl; - abort(); - return false; + throw PDNSException("DNSSEC operation invoked on non-DNSSEC capable backend, qname: '" + qname.toString() + "'"); } virtual bool getBeforeAndAfterNames(uint32_t /* id */, const ZoneName& zonename, const DNSName& qname, DNSName& before, DNSName& after);