]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Fix clang-tidy warnings, test more cases
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 6 Oct 2025 12:26:47 +0000 (14:26 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 21 Oct 2025 13:02:51 +0000 (15:02 +0200)
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
(cherry picked from commit e6cf554574d6875c4e233f6b0dcbe844fd58a850)

pdns/dnsdistdist/dnsdist-lua-ffi.cc
pdns/dnsdistdist/test-dnsdist-lua-ffi.cc

index 3ccc45ed1ae01c4c4d56d2b713077436e3c2c5f3..6b110338489e4aa6d5addf379f3cdcff13ab3ecb 100644 (file)
@@ -1012,14 +1012,14 @@ bool dnsdist_ffi_resume_from_async_with_alternate_name(uint16_t asyncID, uint16_
   return dnsdist::queueQueryResumptionEvent(std::move(query));
 }
 
-bool dnsdist_ffi_dnsquestion_set_alternate_name(dnsdist_ffi_dnsquestion_t* dq, const char* alternateName, size_t alternateNameSize, const char* tag, size_t tagSize, const char* tagValue, size_t tagValueSize, const char* formerNameTagName, size_t formerNameTagSize)
+bool dnsdist_ffi_dnsquestion_set_alternate_name(dnsdist_ffi_dnsquestion_t* dnsQuestion, const char* alternateName, size_t alternateNameSize, const char* tag, size_t tagSize, const char* tagValue, size_t tagValueSize, const char* formerNameTagName, size_t formerNameTagSize)
 {
-  if (dq == nullptr || dq->dq == nullptr || alternateName == nullptr || alternateNameSize == 0) {
+  if (dnsQuestion == nullptr || dnsQuestion->dq == nullptr || alternateName == nullptr || alternateNameSize == 0) {
     return false;
   }
 
-  auto& ids = dq->dq->ids;
-  auto& packet = dq->dq->getMutableData();
+  auto& ids = dnsQuestion->dq->ids;
+  auto& packet = dnsQuestion->dq->getMutableData();
   return setAlternateName(packet, ids, std::string_view(alternateName, alternateNameSize), std::string_view(tag, tagSize), std::string_view(tagValue, tagValueSize), std::string_view(formerNameTagName, formerNameTagSize));
 }
 
index 3ebb53e1ee01618dc13b4f797b5abd72f12a9b48..f489e0d8100e968826e37ba81fc3b4615e0e7b77 100644 (file)
@@ -1125,11 +1125,19 @@ BOOST_AUTO_TEST_CASE(test_set_altername_name)
   BOOST_CHECK_EQUAL(ids.skipCache, true);
   BOOST_REQUIRE(ids.qTag != nullptr);
   BOOST_CHECK_EQUAL(ids.qTag->at(tag), tagValue);
-  BOOST_CHECK_EQUAL(ids.qTag->at(formerTagName), initialQName.getStorage());
+  BOOST_CHECK_EQUAL(ids.qTag->at(formerTagName), std::string(initialQName.getStorage()));
 
+  // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
   MOADNSParser mdp(false, reinterpret_cast<const char*>(dnsQuestion.getData().data()), dnsQuestion.getData().size());
   BOOST_CHECK_EQUAL(mdp.d_qname, target);
   BOOST_CHECK_EQUAL(mdp.d_header.qdcount, 1U);
+
+  /* also check that we can rename without providing any tags */
+  BOOST_CHECK(dnsdist_ffi_dnsquestion_set_alternate_name(&lightDQ, target.getStorage().data(), target.getStorage().size(), nullptr, 0, nullptr, 0, nullptr, 0));
+
+  /* and that we can pass a tag name without a value */
+  BOOST_CHECK(dnsdist_ffi_dnsquestion_set_alternate_name(&lightDQ, target.getStorage().data(), target.getStorage().size(), tag.data(), tag.size(), nullptr, 0, nullptr, 0));
+
 }
 
 BOOST_AUTO_TEST_SUITE_END();