Skip to content

Commit b1d5faa

Browse files
committed
configurable extension for RRSIG expiry
1 parent 29b0f2e commit b1d5faa

4 files changed

Lines changed: 7 additions & 1 deletion

File tree

pdns/auth-main.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@ static void declareArguments()
274274
::arg().set("default-soa-edit", "Default SOA-EDIT value") = "";
275275
::arg().set("default-soa-edit-signed", "Default SOA-EDIT value for signed zones") = "";
276276
::arg().set("default-soa-edit-api", "Default SOA-EDIT-API value for new zones") = "DEFAULT";
277+
::arg().set("rrsig-expiry-extend", "Seconds to extend RRSIG expiry by") = "0";
277278
::arg().set("dnssec-key-cache-ttl", "Seconds to cache DNSSEC keys from the database") = "30";
278279
::arg().set("domain-metadata-cache-ttl", "Seconds to cache zone metadata from the database") = "";
279280
::arg().set("zone-metadata-cache-ttl", "Seconds to cache zone metadata from the database") = "60";
@@ -773,6 +774,7 @@ static void mainthread()
773774

774775
g_anyToTcp = ::arg().mustDo("any-to-tcp");
775776
g_8bitDNS = ::arg().mustDo("8bit-dns");
777+
g_rrsig_expiry_extend = ::arg().asNum("rrsig-expiry-extend");
776778
#ifdef HAVE_LUA_RECORDS
777779
g_doLuaRecord = ::arg().mustDo("enable-lua-records");
778780
g_LuaRecordSharedState = (::arg()["enable-lua-records"] == "shared");

pdns/dnssecinfra.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@
5050

5151
using namespace boost::assign;
5252

53+
int32_t g_rrsig_expiry_extend{0}; // not uint, so negative numbers are legal too
54+
5355
std::unique_ptr<DNSCryptoKeyEngine> DNSCryptoKeyEngine::makeFromISCFile(Logr::log_t slog, DNSKEYRecordContent& drc, const char* fname)
5456
{
5557
string sline, isc;

pdns/dnssecinfra.hh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,3 +299,5 @@ void addTSIG(Logr::log_t slog, DNSPacketWriter& pw, TSIGRecordContent& trc, cons
299299
bool validateTSIG(Logr::log_t slog, const std::string& packet, size_t sigPos, const TSIGTriplet& tt, const TSIGRecordContent& trc, const std::string& previousMAC, const std::string& theirMAC, bool timersOnly, unsigned int dnsHeaderOffset=0);
300300

301301
uint64_t signatureCacheSize(const std::string& str);
302+
303+
extern int32_t g_rrsig_expiry_extend;

pdns/dnssecsigner.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ static int getRRSIGsForRRSET(DNSSECKeeper& dsk, const ZoneName& signer, const DN
122122
rrc.d_labels=signQName.countLabels()-signQName.isWildcard();
123123
rrc.d_originalttl=signTTL;
124124
rrc.d_siginception=startOfWeek - 7*86400; // XXX should come from zone metadata
125-
rrc.d_sigexpire=startOfWeek + 14*86400;
125+
rrc.d_sigexpire=startOfWeek + 14*86400 + g_rrsig_expiry_extend;
126126
rrc.d_signer = signer.operator const DNSName&();
127127
rrc.d_tag = 0;
128128

0 commit comments

Comments
 (0)