]> 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>
Mon, 6 Oct 2025 12:26:47 +0000 (14:26 +0200)
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
pdns/dnsdistdist/dnsdist-lua-ffi.cc
pdns/dnsdistdist/test-dnsdist-lua-ffi.cc

index 78c530143c7ee165ce0ed886e90c865b9d281e3f..0ccf82713d7a0776f3dd1f0758daba4b5a83db44 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 114115f5838dd1543f2a540444fef70bee1a6901..99d2c42ace9360cb0aac65d399af4f251f27c35d 100644 (file)
@@ -1157,11 +1157,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();