From 73c165edd479b2f9838a9390b5fc6598034a6832 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Fri, 4 Jan 2019 09:40:18 +0100 Subject: [PATCH] rec: Fix a possible timing issue w/ RRSIGs in the SyncRes unit tests --- pdns/recursordist/test-syncres_cc.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pdns/recursordist/test-syncres_cc.cc b/pdns/recursordist/test-syncres_cc.cc index 22655c1fb..5a361b15f 100644 --- a/pdns/recursordist/test-syncres_cc.cc +++ b/pdns/recursordist/test-syncres_cc.cc @@ -9098,8 +9098,9 @@ BOOST_AUTO_TEST_CASE(test_dnssec_rrsig_cache_validity) { g_luaconfs.setState(luaconfsCopy); size_t queriesCount = 0; + const time_t tnow = sr->getNow().tv_sec; - 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) { + sr->setAsyncCallback([target,targetAddr,&queriesCount,keys,tnow](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; @@ -9111,14 +9112,13 @@ BOOST_AUTO_TEST_CASE(test_dnssec_rrsig_cache_validity) { else { setLWResult(res, RCode::NoError, true, false, true); addRecordToLW(res, domain, QType::A, targetAddr.toString(), DNSResourceRecord::ANSWER, 3600); - addRRSIG(keys, res->d_records, domain, 1); + addRRSIG(keys, res->d_records, domain, 1, false, boost::none, boost::none, tnow); return 1; } return 0; }); - const time_t now = sr->getNow().tv_sec; vector ret; int res = sr->beginResolve(target, QType(QType::A), QClass::IN, ret); BOOST_CHECK_EQUAL(res, RCode::NoError); @@ -9130,10 +9130,10 @@ BOOST_AUTO_TEST_CASE(test_dnssec_rrsig_cache_validity) { const ComboAddress who; vector cached; vector> signatures; - BOOST_REQUIRE_EQUAL(t_RC->get(now, target, QType(QType::A), true, &cached, who, &signatures), 1); + BOOST_REQUIRE_EQUAL(t_RC->get(tnow, target, QType(QType::A), true, &cached, who, &signatures), 1); BOOST_REQUIRE_EQUAL(cached.size(), 1); BOOST_REQUIRE_EQUAL(signatures.size(), 1); - BOOST_CHECK_EQUAL((cached[0].d_ttl - now), 1); + BOOST_CHECK_EQUAL((cached[0].d_ttl - tnow), 1); /* again, to test the cache */ ret.clear(); -- 2.40.0