dnsdist: Add meson support
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)
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 | |
|---|---|
| Change from base Build 13062026852: | 9.5% |
| Covered Lines: | 128214 |
| Relevant Lines: | 167016 |
💛 - 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
Applied, thanks!
Rebased on the current master, fixed the existing comments, and added YAML configuration support.
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.
I can confirm the build errors mentioned disappeared.
I fixed a lot of unused parameter warnings, likely a few of them will surface in slightly different feature sets.
I like the unnamed parameter for always unused parameters:
void f(int /* unused arg */)
{
}
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.
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
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.