pdns icon indicating copy to clipboard operation
pdns copied to clipboard

dnsdist: Add meson support

Open rgacogne opened this issue 1 year ago • 3 comments

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 https://github.com/PowerDNS/pdns/issues/14654

Checklist

I have:

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

rgacogne avatar Sep 27 '24 12:09 rgacogne

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%
<!-- Total: 449 624
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%
<!-- Total: 6809
Totals Coverage Status
Change from base Build 13062026852: 9.5%
Covered Lines: 128214
Relevant Lines: 167016

💛 - Coveralls

coveralls avatar Sep 27 '24 12:09 coveralls

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

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

omoerbeek avatar Sep 27 '24 12:09 omoerbeek

Applied, thanks!

rgacogne avatar Sep 27 '24 13:09 rgacogne

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

rgacogne avatar Jan 28 '25 13:01 rgacogne

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 avatar Jan 28 '25 15:01 omoerbeek

I can confirm the build errors mentioned disappeared.

omoerbeek avatar Jan 28 '25 16:01 omoerbeek

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

rgacogne avatar Feb 03 '25 11:02 rgacogne

I like the unnamed parameter for always unused parameters:

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

omoerbeek avatar Feb 03 '25 16:02 omoerbeek

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 avatar Feb 04 '25 08:02 rgacogne

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

omoerbeek avatar Feb 04 '25 08:02 omoerbeek

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 avatar Feb 04 '25 09:02 rgacogne