From c243a942a2486e4aa4a2109d121e76b5adf4cb44 Mon Sep 17 00:00:00 2001 From: Otto Moerbeek Date: Tue, 9 Jul 2019 11:03:57 +0200 Subject: [PATCH] Another time sensistive test fixed with a fixedNow construct. Fix borrowed from #8008. But this test also does addRRSIG() calls, these need adaptation as well. --- pdns/recursordist/test-syncres_cc5.cc | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/pdns/recursordist/test-syncres_cc5.cc b/pdns/recursordist/test-syncres_cc5.cc index 512f664d7..dcd7cb9bf 100644 --- a/pdns/recursordist/test-syncres_cc5.cc +++ b/pdns/recursordist/test-syncres_cc5.cc @@ -26,7 +26,13 @@ BOOST_AUTO_TEST_CASE(test_dnssec_secure_various_algos) { size_t queriesCount = 0; - sr->setAsyncCallback([target,targetAddr,&queriesCount,keys](const ComboAddress& ip, const DNSName& domain, int type, bool doTCP, bool sendRDQuery, int EDNS0Level, struct timeval* now, boost::optional& srcmask, boost::optional context, LWResult* res, bool* chained) { + /* make sure that the signature inception and validity times are computed + based on the SyncRes time, not the current one, in case the function + takes too long. */ + + const time_t fixedNow = sr->getNow().tv_sec; + + sr->setAsyncCallback([target,targetAddr,&queriesCount,keys,fixedNow](const ComboAddress& ip, const DNSName& domain, int type, bool doTCP, bool sendRDQuery, int EDNS0Level, struct timeval* now, boost::optional& srcmask, boost::optional context, LWResult* res, bool* chained) { queriesCount++; DNSName auth = domain; @@ -35,14 +41,14 @@ BOOST_AUTO_TEST_CASE(test_dnssec_secure_various_algos) { } if (type == QType::DS || type == QType::DNSKEY) { - return genericDSAndDNSKEYHandler(res, domain, auth, type, keys); + return genericDSAndDNSKEYHandler(res, domain, auth, type, keys, true, fixedNow); } if (isRootServer(ip)) { setLWResult(res, 0, false, false, true); addRecordToLW(res, "com.", QType::NS, "a.gtld-servers.com.", DNSResourceRecord::AUTHORITY, 3600); addDS(DNSName("com."), 300, res->d_records, keys); - addRRSIG(keys, res->d_records, DNSName("."), 300); + addRRSIG(keys, res->d_records, DNSName("."), 300, false, boost::none, boost::none, fixedNow); addRecordToLW(res, "a.gtld-servers.com.", QType::A, "192.0.2.1", DNSResourceRecord::ADDITIONAL, 3600); return 1; } @@ -51,7 +57,7 @@ BOOST_AUTO_TEST_CASE(test_dnssec_secure_various_algos) { if (domain == DNSName("com.")) { setLWResult(res, 0, true, false, true); addRecordToLW(res, domain, QType::NS, "a.gtld-servers.com."); - addRRSIG(keys, res->d_records, domain, 300); + addRRSIG(keys, res->d_records, domain, 300, false, boost::none, boost::none, fixedNow); addRecordToLW(res, "a.gtld-servers.com.", QType::A, "192.0.2.1", DNSResourceRecord::ADDITIONAL, 3600); addRRSIG(keys, res->d_records, domain, 300); } @@ -59,7 +65,7 @@ BOOST_AUTO_TEST_CASE(test_dnssec_secure_various_algos) { setLWResult(res, 0, false, false, true); addRecordToLW(res, auth, QType::NS, "ns1.powerdns.com.", DNSResourceRecord::AUTHORITY, 3600); addDS(auth, 300, res->d_records, keys); - addRRSIG(keys, res->d_records, DNSName("com."), 300); + addRRSIG(keys, res->d_records, DNSName("com."), 300, false, boost::none, boost::none, fixedNow); addRecordToLW(res, "ns1.powerdns.com.", QType::A, "192.0.2.2", DNSResourceRecord::ADDITIONAL, 3600); } return 1; @@ -69,14 +75,14 @@ BOOST_AUTO_TEST_CASE(test_dnssec_secure_various_algos) { if (type == QType::NS) { setLWResult(res, 0, true, false, true); addRecordToLW(res, domain, QType::NS, "ns1.powerdns.com."); - addRRSIG(keys, res->d_records, auth, 300); + addRRSIG(keys, res->d_records, auth, 300, false, boost::none, boost::none, fixedNow); addRecordToLW(res, "ns1.powerdns.com.", QType::A, "192.0.2.2", DNSResourceRecord::ADDITIONAL, 3600); addRRSIG(keys, res->d_records, auth, 300); } else { setLWResult(res, RCode::NoError, true, false, true); addRecordToLW(res, domain, QType::A, targetAddr.toString(), DNSResourceRecord::ANSWER, 3600); - addRRSIG(keys, res->d_records, auth, 300); + addRRSIG(keys, res->d_records, auth, 300, false, boost::none, boost::none, fixedNow); } return 1; } -- 2.50.1