]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
only look up direct-dnskey-signature in the config once 14581/head
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Fri, 17 Jan 2025 10:31:35 +0000 (11:31 +0100)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Fri, 17 Jan 2025 10:31:35 +0000 (11:31 +0100)
pdns/dnssecsigner.cc

index 041a642a503bf78549552781cdc9504a79fe3a5b..4a9ab1e7dadf036af2e28a993e765b63fa9ab541 100644 (file)
@@ -147,11 +147,13 @@ static void addSignature(DNSSECKeeper& dk, UeberBackend& db, const DNSName& sign
                          uint32_t signTTL, DNSResourceRecord::Place signPlace,
                          sortedRecords_t& toSign, vector<DNSZoneRecord>& outsigned, uint32_t origTTL, DNSPacket* packet)
 {
+  static bool directDNSKEYSignature = ::arg().mustDo("direct-dnskey-signature");
+
   //cerr<<"Asked to sign '"<<signQName<<"'|"<<DNSRecordContent::NumberToType(signQType)<<", "<<toSign.size()<<" records\n";
   if(toSign.empty())
     return;
   vector<RRSIGRecordContent> rrcs;
-  if(dk.isPresigned(signer) || (::arg().mustDo("direct-dnskey-signature") && signQType == QType::DNSKEY)) {
+  if(dk.isPresigned(signer) || (directDNSKEYSignature && signQType == QType::DNSKEY)) {
     //cerr<<"Doing presignatures"<<endl;
     dk.getPreRRSIGs(db, outsigned, origTTL, packet); // does it all
   }