Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dnsdist: Add meson support #14724

Merged
merged 23 commits into from
Feb 4, 2025
Merged

dnsdist: Add meson support #14724

merged 23 commits into from
Feb 4, 2025

Conversation

rgacogne
Copy link
Member

Short description

This PR is unfortunately duplicating quite a lot of sub-directories from the root meson directory used by the auth and rec, because we are either using them in a different way or the description is not accurate for dnsdist. It might make sense to use symlinks for the directories we are not modifying?

Closes #14654

Checklist

I have:

  • read the CONTRIBUTING.md document
  • compiled this code
  • tested this code
  • included documentation (including possible behaviour changes)
  • documented the code
  • added or modified regression test(s)
  • added or modified unit test(s)

@coveralls
Copy link

coveralls commented Sep 27, 2024

Pull Request Test Coverage Report for Build 13111317048

Details

  • 449 of 624 (71.96%) changed or added relevant lines in 40 files are covered.
  • 6809 unchanged lines in 147 files lost coverage.
  • Overall coverage increased (+9.5%) to 64.724%

Changes Missing Coverage Covered Lines Changed/Added Lines %
pdns/dnsdistdist/bpf-filter.cc 0 1 0.0%
pdns/dnsdistdist/dnsdist-console.cc 0 1 0.0%
pdns/dnsdistdist/dnsdist-lua-inspection.cc 1 2 50.0%
pdns/dnsdistdist/dnsdist-lua-web.cc 6 7 85.71%
pdns/dnsdistdist/dnsdist-tcp-upstream.hh 0 1 0.0%
pdns/dnsdistdist/dnsdist.cc 2 3 66.67%
pdns/dnsdistdist/test-dnsdist-lua-ffi.cc 0 1 0.0%
pdns/dnsdistdist/test-dnsdistrules_cc.cc 1 2 50.0%
pdns/dnsdistdist/dnsdist-kvs.hh 0 2 0.0%
pdns/dnsdistdist/dnsdist-nghttp2.cc 14 16 87.5%
Files with Coverage Reduction New Missed Lines %
pdns/dnsdistdist/dnsdist-session-cache.cc 1 62.86%
pdns/auth-catalogzone.hh 1 66.67%
pdns/recursordist/nod.hh 1 92.59%
pdns/qtype.hh 1 86.96%
pdns/dnswriter.hh 1 76.6%
pdns/test-dnsrecords_cc.cc 2 96.1%
pdns/dnsdistdist/test-dnsdist-lua-ffi.cc 2 99.47%
pdns/epollmplexer.cc 2 85.0%
pdns/dnsdistdist/test-dnsdistnghttp2_common.hh 2 73.45%
pdns/json.cc 2 83.33%
Totals Coverage Status
Change from base Build 13062026852: 9.5%
Covered Lines: 128214
Relevant Lines: 167016

💛 - Coveralls

@omoerbeek
Copy link
Member

omoerbeek commented Sep 27, 2024

I tested macOS (dnsdist + testrunner, no further options), no changes needed.

This patch makes basic build of dnsdist + testrunner succeed on OpenBSD:
x.txt

@rgacogne
Copy link
Member Author

Applied, thanks!

@chbruyand chbruyand self-requested a review September 30, 2024 12:57
@rgacogne rgacogne force-pushed the meson branch 3 times, most recently from 2fc3876 to 7a57f5e Compare October 15, 2024 10:40
@@ -29,19 +29,19 @@
#include "dnsparser.hh"

// NOLINTNEXTLINE(readability-function-cognitive-complexity): this function declares Lua bindings, even with a good refactoring it will likely blow up the threshold
void setupLuaBindingsDNSQuestion(LuaContext& luaCtx)
void setupLuaBindingsDNSQuestion([[maybe_unused]] LuaContext& luaCtx)

Check warning

Code scanning / CodeQL

Poorly documented large function Warning

Poorly documented function: fewer than 2% comments for a function of 593 lines.
@rgacogne rgacogne marked this pull request as ready for review October 22, 2024 13:21
Habbie
Habbie previously requested changes Dec 6, 2024
tasks.py Outdated Show resolved Hide resolved
@rgacogne
Copy link
Member Author

Rebased on the current master, fixed the existing comments, and added YAML configuration support.

@rgacogne rgacogne requested review from omoerbeek and Habbie January 28, 2025 13:41
@omoerbeek
Copy link
Member

omoerbeek commented Jan 28, 2025

Did a few test compiles on macOS:

Default setup builds but produces quite a few warnings, mostly unused parameters

$ meson setup build
$ meson compile -C build
 2374 | static void bindAny([[maybe_unused]] int addressFamily, int sock)
      |                                                             ^
1 warning generated.
[33/127] Compiling C++ object libdnsdist-common.a.p/dnsdist-actions-factory.cc.o
../dnsdist-actions-factory.cc:56:45: warning: unused parameter 'dnsquestion' [-Wunused-parameter]
   56 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                             ^
../dnsdist-actions-factory.cc:56:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
   56 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override

Setting up with yaml fails:

$ meson setup -D yaml=enabled  build
$ meson compile -C build
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /opt/homebrew/bin/ninja -C /Users/otto/pdns/pdns/dnsdistdist/build
ninja: Entering directory `/Users/otto/pdns/pdns/dnsdistdist/build'
[13/129] Compiling C++ object dnsdist.p/dnsdist.cc.o
../dnsdist.cc:2374:61: warning: unused parameter 'sock' [-Wunused-parameter]
 2374 | static void bindAny([[maybe_unused]] int addressFamily, int sock)
      |                                                             ^
1 warning generated.
[23/129] Generating dnsdist-rust-lib/rust/libdnsd...th a custom command (wrapped by meson to set env)
   Compiling proc-macro2 v1.0.86
   Compiling unicode-ident v1.0.12
   Compiling shlex v1.3.0
   Compiling scratch v1.0.7
   Compiling anyhow v1.0.89
   Compiling unicode-width v0.1.13
   Compiling termcolor v1.4.1
   Compiling cxxbridge-flags v1.0.126
   Compiling version_check v0.9.5
   Compiling once_cell v1.19.0
   Compiling serde v1.0.208
   Compiling hashbrown v0.14.5
   Compiling cc v1.1.14
   Compiling equivalent v1.0.1
   Compiling itoa v1.0.11
   Compiling codespan-reporting v0.11.1
   Compiling memchr v2.7.4
   Compiling serde_yml v0.0.12
   Compiling ryu v1.0.18
   Compiling indexmap v2.4.0
   Compiling link-cplusplus v1.0.9
   Compiling cxx v1.0.126
   Compiling quote v1.0.37
   Compiling libyml v0.0.5
   Compiling syn v2.0.75
   Compiling cxx-build v1.0.126
   Compiling serde_derive v1.0.208
   Compiling cxxbridge-macro v1.0.126
   Compiling dnsdist-rust v2.0.0 (/Users/otto/pdns/pdns/dnsdistdist/dnsdist-rust-lib/rust)
    Finished `release` profile [optimized] target(s) in 15.61s
[37/129] Compiling C++ object libdnsdist-common.a.p/dnsdist-actions-factory.cc.o
../dnsdist-actions-factory.cc:56:45: warning: unused parameter 'dnsquestion' [-Wunused-parameter]
   56 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                             ^
../dnsdist-actions-factory.cc:56:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
   56 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:69:45: warning: unused parameter 'dnsquestion' [-Wunused-parameter]
   69 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                             ^
../dnsdist-actions-factory.cc:69:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
   69 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:83:45: warning: unused parameter 'dnsquestion' [-Wunused-parameter]
   83 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                             ^
../dnsdist-actions-factory.cc:83:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
   83 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:100:45: warning: unused parameter 'dnsquestion' [-Wunused-parameter]
  100 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                             ^
../dnsdist-actions-factory.cc:100:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
  100 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:123:45: warning: unused parameter 'dnsquestion' [-Wunused-parameter]
  123 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                             ^
../dnsdist-actions-factory.cc:194:80: warning: unused parameter 'ruleresult' [-Wunused-parameter]
  194 | DNSAction::Action TeeAction::operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const
      |                                                                                ^
../dnsdist-actions-factory.cc:376:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
  376 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:403:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
  403 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:450:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
  450 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:474:45: warning: unused parameter 'dnsquestion' [-Wunused-parameter]
  474 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                             ^
../dnsdist-actions-factory.cc:474:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
  474 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:487:53: warning: unused parameter 'dnsResponse' [-Wunused-parameter]
  487 |   DNSResponseAction::Action operator()(DNSResponse* dnsResponse, std::string* ruleresult) const override
      |                                                     ^
../dnsdist-actions-factory.cc:487:79: warning: unused parameter 'ruleresult' [-Wunused-parameter]
  487 |   DNSResponseAction::Action operator()(DNSResponse* dnsResponse, std::string* ruleresult) const override
      |                                                                               ^
../dnsdist-actions-factory.cc:891:82: warning: unused parameter 'ruleresult' [-Wunused-parameter]
  891 | DNSAction::Action SpoofAction::operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const
      |                                                                                  ^
../dnsdist-actions-factory.cc:934:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
  934 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:998:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
  998 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:1018:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1018 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:1050:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1050 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:1162:76: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1162 |   DNSResponseAction::Action operator()(DNSResponse* response, std::string* ruleresult) const override
      |                                                                            ^
../dnsdist-actions-factory.cc:1237:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1237 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:1255:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1255 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:1269:76: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1269 |   DNSResponseAction::Action operator()(DNSResponse* response, std::string* ruleresult) const override
      |                                                                            ^
../dnsdist-actions-factory.cc:1288:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1288 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:1310:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1310 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:1333:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1333 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:1351:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1351 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:1376:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1376 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:1458:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1458 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:1546:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1546 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:1608:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1608 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:1633:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1633 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:1658:76: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1658 |   DNSResponseAction::Action operator()(DNSResponse* response, std::string* ruleresult) const override
      |                                                                            ^
../dnsdist-actions-factory.cc:1699:76: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1699 |   DNSResponseAction::Action operator()(DNSResponse* response, std::string* ruleresult) const override
      |                                                                            ^
../dnsdist-actions-factory.cc:1762:53: warning: unused parameter 'response' [-Wunused-parameter]
 1762 |   DNSResponseAction::Action operator()(DNSResponse* response, std::string* ruleresult) const override
      |                                                     ^
../dnsdist-actions-factory.cc:1762:76: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1762 |   DNSResponseAction::Action operator()(DNSResponse* response, std::string* ruleresult) const override
      |                                                                            ^
../dnsdist-actions-factory.cc:1775:53: warning: unused parameter 'response' [-Wunused-parameter]
 1775 |   DNSResponseAction::Action operator()(DNSResponse* response, std::string* ruleresult) const override
      |                                                     ^
../dnsdist-actions-factory.cc:1775:76: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1775 |   DNSResponseAction::Action operator()(DNSResponse* response, std::string* ruleresult) const override
      |                                                                            ^
../dnsdist-actions-factory.cc:1792:53: warning: unused parameter 'response' [-Wunused-parameter]
 1792 |   DNSResponseAction::Action operator()(DNSResponse* response, std::string* ruleresult) const override
      |                                                     ^
../dnsdist-actions-factory.cc:1814:76: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1814 |   DNSResponseAction::Action operator()(DNSResponse* response, std::string* ruleresult) const override
      |                                                                            ^
../dnsdist-actions-factory.cc:1839:76: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1839 |   DNSResponseAction::Action operator()(DNSResponse* response, std::string* ruleresult) const override
      |                                                                            ^
../dnsdist-actions-factory.cc:1863:76: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1863 |   DNSResponseAction::Action operator()(DNSResponse* response, std::string* ruleresult) const override
      |                                                                            ^
../dnsdist-actions-factory.cc:1974:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 1974 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:2009:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 2009 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:2044:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 2044 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:2067:76: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 2067 |   DNSResponseAction::Action operator()(DNSResponse* response, std::string* ruleresult) const override
      |                                                                            ^
../dnsdist-actions-factory.cc:2090:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 2090 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:2132:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 2132 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:2161:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 2161 |   DNSAction::Action operator()(DNSQuestion* dnsquestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:2194:32: warning: unused parameter 'section' [-Wunused-parameter]
 2194 |     auto visitor = [&](uint8_t section, uint16_t qclass, uint16_t qtype, uint32_t ttl) {
      |                                ^
../dnsdist-actions-factory.cc:2194:50: warning: unused parameter 'qclass' [-Wunused-parameter]
 2194 |     auto visitor = [&](uint8_t section, uint16_t qclass, uint16_t qtype, uint32_t ttl) {
      |                                                  ^
../dnsdist-actions-factory.cc:2194:67: warning: unused parameter 'qtype' [-Wunused-parameter]
 2194 |     auto visitor = [&](uint8_t section, uint16_t qclass, uint16_t qtype, uint32_t ttl) {
      |                                                                   ^
../dnsdist-actions-factory.cc:2191:76: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 2191 |   DNSResponseAction::Action operator()(DNSResponse* response, std::string* ruleresult) const override
      |                                                                            ^
../dnsdist-actions-factory.cc:2221:71: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 2221 |   DNSAction::Action operator()(DNSQuestion* dnsQuestion, std::string* ruleresult) const override
      |                                                                       ^
../dnsdist-actions-factory.cc:2247:79: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 2247 |   DNSResponseAction::Action operator()(DNSResponse* dnsResponse, std::string* ruleresult) const override
      |                                                                               ^
../dnsdist-actions-factory.cc:2271:79: warning: unused parameter 'ruleresult' [-Wunused-parameter]
 2271 |   DNSResponseAction::Action operator()(DNSResponse* dnsResponse, std::string* ruleresult) const override
      |                                                                               ^
59 warnings generated.
[41/129] Compiling C++ object libdnsdist-common.a.p/dnsdist-dnsparser.cc.o
../dnsdist-dnsparser.cc:219:64: warning: unused parameter 'section' [-Wunused-parameter]
  219 |     auto visitor = [minimumValue, maximumValue, types](uint8_t section, uint16_t qclass, uint16_t qtype, uint32_t ttl) {
      |                                                                ^
1 warning generated.
[68/129] Compiling C++ object libdnsdist-common.a.p/dnsdist-lua.cc.o
../dnsdist-lua.cc:2703:64: warning: unused parameter 'key' [-Wunused-parameter]
 2703 |   luaCtx.writeFunction("loadTicketsKey", [](const std::string& key) {
      |                                                                ^
1 warning generated.
[69/129] Compiling C++ object libdnsdist-common.a.p/dnsdist-lua-ffi.cc.o
../dnsdist-lua-ffi.cc:422:76: warning: unused parameter 'dq' [-Wunused-parameter]
  422 | size_t dnsdist_ffi_dnsquestion_get_http_headers(dnsdist_ffi_dnsquestion_t* dq, [[maybe_unused]] const dnsdist_ffi_http_header_t** out)
      |                                                                            ^
../dnsdist-lua-ffi.cc:501:75: warning: unused parameter 'dq' [-Wunused-parameter]
  501 | void dnsdist_ffi_dnsquestion_set_http_response(dnsdist_ffi_dnsquestion_t* dq, [[maybe_unused]] uint16_t statusCode, [[maybe_unused]] const char* body, [[maybe_unused]] size_t bodyLen, [[maybe_unused]] const char* contentType)
      |                                                                           ^
2 warnings generated.
[75/129] Compiling C++ object libdnsdist-common.a.p/dnsdist-lua-rules.cc.o
In file included from ../dnsdist-lua-rules.cc:25:
../dnsdist-rules-factory.hh:209:35: warning: unused parameter 'qd' [-Wunused-parameter]
  209 |   bool matches(const DNSQuestion* qd) const override
      |                                   ^
../dnsdist-rules-factory.hh:402:35: warning: unused parameter 'dq' [-Wunused-parameter]
  402 |   bool matches(const DNSQuestion* dq) const override
      |                                   ^
../dnsdist-rules-factory.hh:547:30: warning: unused parameter 're2' [-Wunused-parameter]
  547 |   RE2Rule(const std::string& re2)
      |                              ^
../dnsdist-rules-factory.hh:551:35: warning: unused parameter 'dq' [-Wunused-parameter]
  551 |   bool matches(const DNSQuestion* dq) const override
      |                                   ^
../dnsdist-rules-factory.hh:1114:35: warning: unused parameter 'dq' [-Wunused-parameter]
 1114 |   bool matches(const DNSQuestion* dq) const override
      |                                   ^
../dnsdist-rules-factory.hh:1173:35: warning: unused parameter 'dq' [-Wunused-parameter]
 1173 |   bool matches(const DNSQuestion* dq) const override
      |                                   ^
../dnsdist-rules-factory.hh:1195:35: warning: unused parameter 'dq' [-Wunused-parameter]
 1195 |   bool matches(const DNSQuestion* dq) const override
      |                                   ^
7 warnings generated.
[90/129] Compiling C++ object libdnsdist-common.a.p/dnsdist-rules.cc.o
In file included from ../dnsdist-rules.cc:22:
../dnsdist-rules-factory.hh:209:35: warning: unused parameter 'qd' [-Wunused-parameter]
  209 |   bool matches(const DNSQuestion* qd) const override
      |                                   ^
../dnsdist-rules-factory.hh:402:35: warning: unused parameter 'dq' [-Wunused-parameter]
  402 |   bool matches(const DNSQuestion* dq) const override
      |                                   ^
../dnsdist-rules-factory.hh:547:30: warning: unused parameter 're2' [-Wunused-parameter]
  547 |   RE2Rule(const std::string& re2)
      |                              ^
../dnsdist-rules-factory.hh:551:35: warning: unused parameter 'dq' [-Wunused-parameter]
  551 |   bool matches(const DNSQuestion* dq) const override
      |                                   ^
../dnsdist-rules-factory.hh:1114:35: warning: unused parameter 'dq' [-Wunused-parameter]
 1114 |   bool matches(const DNSQuestion* dq) const override
      |                                   ^
../dnsdist-rules-factory.hh:1173:35: warning: unused parameter 'dq' [-Wunused-parameter]
 1173 |   bool matches(const DNSQuestion* dq) const override
      |                                   ^
../dnsdist-rules-factory.hh:1195:35: warning: unused parameter 'dq' [-Wunused-parameter]
 1195 |   bool matches(const DNSQuestion* dq) const override
      |                                   ^
../dnsdist-rules.cc:35:49: warning: unused parameter 'dnsQuestion' [-Wunused-parameter]
   35 | bool HTTPHeaderRule::matches(const DNSQuestion* dnsQuestion) const
      |                                                 ^
../dnsdist-rules.cc:75:47: warning: unused parameter 'dnsQuestion' [-Wunused-parameter]
   75 | bool HTTPPathRule::matches(const DNSQuestion* dnsQuestion) const
      |                                               ^
../dnsdist-rules.cc:104:52: warning: unused parameter 'dnsQuestion' [-Wunused-parameter]
  104 | bool HTTPPathRegexRule::matches(const DNSQuestion* dnsQuestion) const
      |                                                    ^
10 warnings generated.
[127/129] Compiling C++ object libdnsdist-common.a.p/dnsdist-configuration-yaml.cc.o
FAILED: libdnsdist-common.a.p/dnsdist-configuration-yaml.cc.o 
ccache c++ -Ilibdnsdist-common.a.p -I. -I.. -Iext/arc4random -I../ext/arc4random -Iext/ipcrypt -I../ext/ipcrypt -Iext/json11 -I../ext/json11 -Iext/lmdb-safe -I../ext/lmdb-safe -I../ext/protozero/include -Iext/yahttp -I../ext/yahttp -Idnsdist-rust-lib -I../dnsdist-rust-lib -Idnsdist-rust-lib/rust -I/opt/homebrew/include -I/opt/homebrew/Cellar/tinycdb/0.81_1/include -I/opt/homebrew/Cellar/fstrm/0.6.1/include -I/opt/homebrew/Cellar/openssl@3/3.4.0/include -I/opt/homebrew/Cellar/gnutls/3.8.4/include -I/opt/homebrew/Cellar/nettle/3.10.1/include -I/opt/homebrew/Cellar/libtasn1/4.19.0/include -I/opt/homebrew/Cellar/libidn2/2.3.7/include -I/opt/homebrew/Cellar/p11-kit/0.25.5/include/p11-kit-1 -I/Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk/usr/include/editline -I/opt/homebrew/Cellar/libnghttp2/1.64.0/include -I/opt/homebrew/Cellar/libsodium/1.0.20/include -I/opt/homebrew/opt/lmdb/include -I/opt/homebrew/Cellar/luajit/2.1.1736781742/include/luajit-2.1 -fdiagnostics-color=always -D_LIBCPP_ENABLE_ASSERTIONS=1 -Wall -Winvalid-pch -Wextra -std=c++17 -O2 -g -DDNSDIST -DHAVE_CONFIG_H -ferror-limit=0 -Wshadow -Wmissing-declarations -Wredundant-decls -Wno-ignored-attributes -fvisibility=hidden -D__APPLE_USE_RFC_3542 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fstack-protector --param=ssp-buffer-size=4 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -DBOOST_CONTAINER_USE_STD_EXCEPTIONS -DBOOST_ALL_NO_LIB -MD -MQ libdnsdist-common.a.p/dnsdist-configuration-yaml.cc.o -MF libdnsdist-common.a.p/dnsdist-configuration-yaml.cc.o.d -o libdnsdist-common.a.p/dnsdist-configuration-yaml.cc.o -c ../dnsdist-configuration-yaml.cc
In file included from ../dnsdist-configuration-yaml.cc:37:
../dnsdist-rules-factory.hh:209:35: warning: unused parameter 'qd' [-Wunused-parameter]
  209 |   bool matches(const DNSQuestion* qd) const override
      |                                   ^
../dnsdist-rules-factory.hh:402:35: warning: unused parameter 'dq' [-Wunused-parameter]
  402 |   bool matches(const DNSQuestion* dq) const override
      |                                   ^
../dnsdist-rules-factory.hh:547:30: warning: unused parameter 're2' [-Wunused-parameter]
  547 |   RE2Rule(const std::string& re2)
      |                              ^
../dnsdist-rules-factory.hh:551:35: warning: unused parameter 'dq' [-Wunused-parameter]
  551 |   bool matches(const DNSQuestion* dq) const override
      |                                   ^
../dnsdist-rules-factory.hh:1114:35: warning: unused parameter 'dq' [-Wunused-parameter]
 1114 |   bool matches(const DNSQuestion* dq) const override
      |                                   ^
../dnsdist-rules-factory.hh:1173:35: warning: unused parameter 'dq' [-Wunused-parameter]
 1173 |   bool matches(const DNSQuestion* dq) const override
      |                                   ^
../dnsdist-rules-factory.hh:1195:35: warning: unused parameter 'dq' [-Wunused-parameter]
 1195 |   bool matches(const DNSQuestion* dq) const override
      |                                   ^
../dnsdist-configuration-yaml.cc:255:15: error: no member named 'd_local' in 'DOQFrontend'
  255 |     frontend->d_local = ComboAddress(std::string(bind.listen_address), 853);
      |     ~~~~~~~~~~^
../dnsdist-configuration-yaml.cc:256:15: error: no member named 'd_quicheParams' in 'DOQFrontend'
  256 |     frontend->d_quicheParams.d_tlsConfig = std::move(tlsConfig);
      |     ~~~~~~~~~~^
../dnsdist-configuration-yaml.cc:257:15: error: no member named 'd_quicheParams' in 'DOQFrontend'
  257 |     frontend->d_quicheParams.d_maxInFlight = bind.doq.max_concurrent_queries_per_connection;
      |     ~~~~~~~~~~^
../dnsdist-configuration-yaml.cc:258:15: error: no member named 'd_quicheParams' in 'DOQFrontend'
  258 |     frontend->d_quicheParams.d_idleTimeout = bind.quic.idle_timeout;
      |     ~~~~~~~~~~^
../dnsdist-configuration-yaml.cc:259:15: error: no member named 'd_quicheParams' in 'DOQFrontend'
  259 |     frontend->d_quicheParams.d_keyLogFile = std::string(bind.tls.key_log_file);
      |     ~~~~~~~~~~^
../dnsdist-configuration-yaml.cc:260:18: error: no member named 'doq' in namespace 'dnsdist'; did you mean 'doh'?
  260 |     if (dnsdist::doq::s_available_cc_algorithms.count(std::string(bind.quic.congestion_control_algorithm)) > 0) {
      |         ~~~~~~~~~^~~
      |                  doh
../dnsdist-doh-common.hh:36:20: note: 'doh' declared here
   36 | namespace dnsdist::doh
      |                    ^
../dnsdist-configuration-yaml.cc:260:23: error: no member named 's_available_cc_algorithms' in namespace 'dnsdist::doh'
  260 |     if (dnsdist::doq::s_available_cc_algorithms.count(std::string(bind.quic.congestion_control_algorithm)) > 0) {
      |         ~~~~~~~~~~~~~~^
../dnsdist-configuration-yaml.cc:261:17: error: no member named 'd_quicheParams' in 'DOQFrontend'
  261 |       frontend->d_quicheParams.d_ccAlgo = std::string(bind.quic.congestion_control_algorithm);
      |       ~~~~~~~~~~^
../dnsdist-configuration-yaml.cc:263:15: error: no member named 'd_internalPipeBufferSize' in 'DOQFrontend'
  263 |     frontend->d_internalPipeBufferSize = bind.quic.internal_pipe_buffer_size;
      |     ~~~~~~~~~~^
../dnsdist-configuration-yaml.cc:268:15: error: no member named 'd_local' in 'DOH3Frontend'
  268 |     frontend->d_local = ComboAddress(std::string(bind.listen_address), 443);
      |     ~~~~~~~~~~^
../dnsdist-configuration-yaml.cc:269:15: error: no member named 'd_quicheParams' in 'DOH3Frontend'
  269 |     frontend->d_quicheParams.d_tlsConfig = std::move(tlsConfig);
      |     ~~~~~~~~~~^
../dnsdist-configuration-yaml.cc:270:15: error: no member named 'd_quicheParams' in 'DOH3Frontend'
  270 |     frontend->d_quicheParams.d_idleTimeout = bind.quic.idle_timeout;
      |     ~~~~~~~~~~^
../dnsdist-configuration-yaml.cc:271:15: error: no member named 'd_quicheParams' in 'DOH3Frontend'
  271 |     frontend->d_quicheParams.d_keyLogFile = std::string(bind.tls.key_log_file);
      |     ~~~~~~~~~~^
../dnsdist-configuration-yaml.cc:272:18: error: no member named 'doq' in namespace 'dnsdist'; did you mean 'doh'?
  272 |     if (dnsdist::doq::s_available_cc_algorithms.count(std::string(bind.quic.congestion_control_algorithm)) > 0) {
      |         ~~~~~~~~~^~~
      |                  doh
../dnsdist-doh-common.hh:36:20: note: 'doh' declared here
   36 | namespace dnsdist::doh
      |                    ^
../dnsdist-configuration-yaml.cc:272:23: error: no member named 's_available_cc_algorithms' in namespace 'dnsdist::doh'
  272 |     if (dnsdist::doq::s_available_cc_algorithms.count(std::string(bind.quic.congestion_control_algorithm)) > 0) {
      |         ~~~~~~~~~~~~~~^
../dnsdist-configuration-yaml.cc:273:17: error: no member named 'd_quicheParams' in 'DOH3Frontend'
  273 |       frontend->d_quicheParams.d_ccAlgo = std::string(bind.quic.congestion_control_algorithm);
      |       ~~~~~~~~~~^
../dnsdist-configuration-yaml.cc:275:15: error: no member named 'd_internalPipeBufferSize' in 'DOH3Frontend'
  275 |     frontend->d_internalPipeBufferSize = bind.quic.internal_pipe_buffer_size;
      |     ~~~~~~~~~~^
In file included from ../dnsdist-configuration-yaml.cc:1662:
../dnsdist-rust-bridge-actions-generated.cc:29:35: error: no member named 'getHTTPStatusAction' in namespace 'dnsdist::actions'
   29 |   auto action = dnsdist::actions::getHTTPStatusAction(config.status, PacketBuffer(config.body.data(), config.body.data() + config.body.size()), std::string(config.content_type), convertResponseConfig(config.vars));
      |                 ~~~~~~~~~~~~~~~~~~^
7 warnings and 18 errors generated.
ninja: build stopped: subcommand failed.

@omoerbeek
Copy link
Member

I can confirm the build errors mentioned disappeared.

@rgacogne
Copy link
Member Author

rgacogne commented Feb 3, 2025

I fixed a lot of unused parameter warnings, likely a few of them will surface in slightly different feature sets.

@omoerbeek
Copy link
Member

I like the unnamed parameter for always unused parameters:

void f(int /* unused arg */)
{
}

Copy link
Member

@omoerbeek omoerbeek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested a few meson builds on a few exotic (read OpenBSD and macOS) targets and verified the autotools build did not break as well. Any further polishing can be done in-tree. Very nice step towards #15048!

@rgacogne
Copy link
Member Author

rgacogne commented Feb 4, 2025

I like the unnamed parameter for always unused parameters:

That works for me, but doesn't clang-tidy warn about that? Or Coverity? Perhaps it used to be a thing and isn't anymore, though.

@rgacogne rgacogne dismissed Habbie’s stale review February 4, 2025 08:57

The requested change has been implemented.

@omoerbeek
Copy link
Member

omoerbeek commented Feb 4, 2025

I like the unnamed parameter for always unused parameters:

That works for me, but doesn't clang-tidy warn about that? Or Coverity? Perhaps it used to be a thing and isn't anymore, though.

AFAIK leaving out the name (just type) gets flagged by one of the tools, but type /* unused */ not

@rgacogne
Copy link
Member Author

rgacogne commented Feb 4, 2025

It would so much easier if these tools could just stop reporting unused parameters for override methods. What is happening in this case is obvious, and clearly doesn't warrant a warning.

@rgacogne rgacogne merged commit 86a5d8a into PowerDNS:master Feb 4, 2025
83 checks passed
@rgacogne rgacogne deleted the meson branch February 4, 2025 10:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

dnsdist: Move the build system to meson
5 participants