]>
git.ipfire.org Git - thirdparty/pdns.git/log
Remi Gacogne [Thu, 22 Apr 2021 08:38:43 +0000 (10:38 +0200)]
dnsdist: Only use eBPF for "drop" actions
Remi Gacogne [Thu, 22 Apr 2021 08:15:54 +0000 (10:15 +0200)]
dnsdist: Document that eBPF is only used for "drop" actions
Remi Gacogne [Thu, 22 Apr 2021 08:13:32 +0000 (10:13 +0200)]
dnsdist: Set setDynBlocksPurgeInterval()'s default to 60s
Remi Gacogne [Thu, 22 Apr 2021 08:06:38 +0000 (10:06 +0200)]
Merge pull request #10323 from rgacogne/ddist-tsan-snmp
dnsdist: Make the backend queryLoad and dropRate values atomic
Remi Gacogne [Wed, 21 Apr 2021 13:17:22 +0000 (15:17 +0200)]
Merge pull request #10310 from rgacogne/fix-simple-match
auth: Prevent dereferencing std::string::end() in SimpleMatch
Remi Gacogne [Wed, 21 Apr 2021 12:20:52 +0000 (14:20 +0200)]
dnsdist: Make the backend queryLoad and dropRate values atomic
So that there is no race when these vaues are read by the SNMP or
web threads and updated by the health check thread at the same time.
Reported by Thread Sanitizer:
WARNING: ThreadSanitizer: data race (pid=11167)
Write of size 8 at 0x7b7400002558 by thread T18:
#0 healthChecksThread() /opt/project/pdns/dnsdistdist/dnsdist.cc:1712:22 (dnsdist+0xf2a4a2)
#1 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/invoke.h:60:14 (dnsdist+0xf40ea2)
#2 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/invoke.h:95:14 (dnsdist+0xf40e0d)
#3 decltype(std::__invoke(_S_declval<0ul>())) std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:244:13 (dnsdist+0xf40dd5)
#4 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:253:11 (dnsdist+0xf40d95)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:196:13 (dnsdist+0xf40c29)
#6 <null> <null> (libstdc++.so.6+0xbbb2e)
Previous read of size 8 at 0x7b7400002558 by thread T2:
#0 backendStatTable_handler(netsnmp_mib_handler_s*, netsnmp_handler_registration_s*, netsnmp_agent_request_info_s*, netsnmp_request_info_s*) /opt/project/pdns/dnsdistdist/dnsdist-snmp.cc:356:62 (dnsdist+0xeccf98)
#1 netsnmp_call_next_handler <null> (libnetsnmpagent.so.30+0x2a0cc)
#2 SNMPAgent::handleSNMPQueryCB(int, boost::any&) /opt/project/pdns/dnsdistdist/snmp-agent.cc:96:13 (dnsdist+0xfb0847)
#3 boost::detail::function::void_function_invoker2<void (*)(int, boost::any&), void, int, boost::any&>::invoke(boost::detail::function::function_buffer&, int, boost::any&) /usr/include/boost/function/function_template.hpp:118:11 (dnsdist+0x8937d8)
#4 boost::function2<void, int, boost::any&>::operator()(int, boost::any&) const /usr/include/boost/function/function_template.hpp:768:14 (dnsdist+0xf9d56c)
#5 EpollFDMultiplexer::run(timeval*, int) /opt/project/pdns/dnsdistdist/epollmplexer.cc:176:7 (dnsdist+0xfd041b)
#6 SNMPAgent::worker() /opt/project/pdns/dnsdistdist/snmp-agent.cc:141:24 (dnsdist+0xfb0b6f)
#7 void std::__invoke_impl<void, void (SNMPAgent::*)(), SNMPAgent*>(std::__invoke_memfun_deref, void (SNMPAgent::*&&)(), SNMPAgent*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/invoke.h:73:14 (dnsdist+0xf344c9)
#8 std::__invoke_result<void (SNMPAgent::*)(), SNMPAgent*>::type std::__invoke<void (SNMPAgent::*)(), SNMPAgent*>(void (SNMPAgent::*&&)(), SNMPAgent*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/invoke.h:95:14 (dnsdist+0xf343c1)
#9 decltype(std::__invoke(_S_declval<0ul>(), _S_declval<1ul>())) std::thread::_Invoker<std::tuple<void (SNMPAgent::*)(), SNMPAgent*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:244:13 (dnsdist+0xf3436e)
#10 std::thread::_Invoker<std::tuple<void (SNMPAgent::*)(), SNMPAgent*> >::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:253:11 (dnsdist+0xf34315)
#11 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (SNMPAgent::*)(), SNMPAgent*> > >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:196:13 (dnsdist+0xf34079)
#12 <null> <null> (libstdc++.so.6+0xbbb2e)
Otto Moerbeek [Wed, 21 Apr 2021 10:31:47 +0000 (12:31 +0200)]
Merge pull request #10312 from omoerbeek/rec-pc-sizing
rec: Improve packet cache sizing.
Otto Moerbeek [Wed, 21 Apr 2021 09:01:56 +0000 (11:01 +0200)]
typo
Co-authored-by: Remi Gacogne <github@coredump.fr>
Remi Gacogne [Wed, 21 Apr 2021 08:24:32 +0000 (10:24 +0200)]
Merge pull request #10311 from rgacogne/ddist-newserver-sockets-doc
dnsdist: Better documentation of newServer's 'sockets' parameter
Otto Moerbeek [Tue, 20 Apr 2021 18:52:24 +0000 (20:52 +0200)]
Merge pull request #10322 from rubenk/typos
Fix two typos in lua scripting docs
Ruben Kerkhof [Tue, 20 Apr 2021 17:39:07 +0000 (19:39 +0200)]
Fix two typos in lua scripting docs
Otto Moerbeek [Tue, 20 Apr 2021 14:58:44 +0000 (16:58 +0200)]
Merge pull request #10318 from mnordhoff/toclients
rec: Fix typo in edns-padding-tag help
Matt Nordhoff [Tue, 20 Apr 2021 13:41:42 +0000 (13:41 +0000)]
rec: Fix typo in edns-padding-tag help
Otto Moerbeek [Tue, 20 Apr 2021 13:02:42 +0000 (15:02 +0200)]
Merge pull request #10317 from omoerbeek/rec-export-hosts
rec: Do not put results of DS query for auth or forward domains in negcache.
Otto [Tue, 20 Apr 2021 11:52:38 +0000 (13:52 +0200)]
Also check query type
Otto [Tue, 20 Apr 2021 11:32:26 +0000 (13:32 +0200)]
Add test case
Otto [Tue, 6 Apr 2021 11:20:36 +0000 (13:20 +0200)]
Do not put results of DS query for auth or forward domains in negcache.
Should fix #10189.
Remi Gacogne [Tue, 20 Apr 2021 08:31:53 +0000 (10:31 +0200)]
Merge pull request #10309 from rgacogne/ddist-16rc1-changelog
dnsdist: Add ChangeLog and secpoll for 1.6.0-rc1
Remi Gacogne [Mon, 19 Apr 2021 15:19:42 +0000 (17:19 +0200)]
Merge pull request #10303 from rgacogne/rec-proxy-protocol-ecs
rec: Use the correct ECS address when proxy-protocol is enabled
Otto [Mon, 19 Apr 2021 14:44:43 +0000 (16:44 +0200)]
Improve packet cache sizing.
Since queries incoming over TCP are now also using the packet
cache, there is now also one packet cache instance per distributor
thread. Each cache instance has a size of max-packetcache-entries
divided by (threads + distributor-threads).
Remi Gacogne [Mon, 19 Apr 2021 14:16:16 +0000 (16:16 +0200)]
dnsdist: Better documentation of newServer's 'sockets' parameter
Courtesy of Neil Cook (thanks!).
Remi Gacogne [Mon, 19 Apr 2021 12:14:45 +0000 (14:14 +0200)]
dnsdist: Add missing #10171 to the ChangeLog
Remi Gacogne [Mon, 19 Apr 2021 12:06:26 +0000 (14:06 +0200)]
rec: Fix the proxy protocol regression tests
Remi Gacogne [Mon, 19 Apr 2021 11:59:53 +0000 (13:59 +0200)]
dnsdist: Add ChangeLog and secpoll for 1.6.0-rc1
Peter van Dijk [Mon, 19 Apr 2021 10:51:03 +0000 (12:51 +0200)]
Merge pull request #10286 from Habbie/rpz-zz-zz
rpz dumper: stop generating double zz labels on networks that start with zeroes
Remi Gacogne [Mon, 19 Apr 2021 10:28:55 +0000 (12:28 +0200)]
auth: Small cleanup in SimpleMatch
Remi Gacogne [Mon, 19 Apr 2021 10:18:50 +0000 (12:18 +0200)]
auth: Prevent dereferencing std::string::end() in SimpleMatch
SimpleMatch is called with user-supplied strings in the API and the
bind backend. We might get away with it in most cases because
std::strings are null-terminated, but it's still undefined behaviour
as there is no guarantee that end() will point to the terminator.
Reported by cppcheck 2.4.1:
```
misc.hh:501:16: warning: Either the condition 'mi==d_mask.end()' is redundant or there is possible dereference of an invalid iterator: mi. [derefInvalidIteratorRedundantCheck]
while(*mi == '*') ++mi;
^
misc.hh:502:16: note: Assuming that condition 'mi==d_mask.end()' is not redundant
if (mi == d_mask.end()) return true;
^
misc.hh:501:16: note: Dereference of an invalid iterator
while(*mi == '*') ++mi;
```
Remi Gacogne [Mon, 19 Apr 2021 09:15:43 +0000 (11:15 +0200)]
rec: Replace deprecated edns-subnet-whitelist with edns-subnet-allow-list
Remi Gacogne [Mon, 19 Apr 2021 09:13:47 +0000 (11:13 +0200)]
rec: Add regression tests for Proxy Protocol / ECS interaction
Remi Gacogne [Mon, 19 Apr 2021 08:09:40 +0000 (10:09 +0200)]
rec: Use the correct ECS address when proxy-protocol is enabled
Otto Moerbeek [Fri, 16 Apr 2021 14:16:13 +0000 (16:16 +0200)]
Merge pull request #10298 from phonedph1/patch-26
rec: print the covering NSEC
Remi Gacogne [Fri, 16 Apr 2021 13:52:27 +0000 (15:52 +0200)]
Merge pull request #10274 from rgacogne/ddist-tsan-fixes
dnsdist: Fix some issues reported by Thread Sanitizer
Peter van Dijk [Fri, 16 Apr 2021 13:52:20 +0000 (15:52 +0200)]
Merge pull request #10301 from Habbie/rec-docs-faq-bufsize-bis
two more comments from Otto on recursor FAQ entry about bufsizes
Otto Moerbeek [Fri, 16 Apr 2021 09:52:18 +0000 (11:52 +0200)]
Merge pull request #10300 from omoerbeek/rec-docs-thruth
Rec: recursor is actually a pretty complex piece of code
Peter van Dijk [Fri, 16 Apr 2021 09:15:14 +0000 (11:15 +0200)]
two more comments from Otto on this text
Peter van Dijk [Fri, 16 Apr 2021 09:04:38 +0000 (11:04 +0200)]
Merge pull request #10296 from Habbie/rec-docs-faq-bufsize
start off recursor FAQ with some talk about EDNS bufsizes
Otto Moerbeek [Fri, 16 Apr 2021 08:50:51 +0000 (10:50 +0200)]
escape *
Otto Moerbeek [Fri, 16 Apr 2021 08:30:04 +0000 (10:30 +0200)]
Merge pull request #10299 from phonedph1/patch-27
rec: update setting for aggressive-nsec-cache-size
Otto [Fri, 16 Apr 2021 08:28:11 +0000 (10:28 +0200)]
Avoid lines counts and be more honest: rec is a big and complex piece
of code.
Remi Gacogne [Thu, 15 Apr 2021 10:21:00 +0000 (12:21 +0200)]
dnsdist: Fix a typo in the TSAN suppressions file
Remi Gacogne [Wed, 7 Apr 2021 11:48:38 +0000 (13:48 +0200)]
dnsdist: Add a TSAN-enabled build on CircleCI
Remi Gacogne [Wed, 7 Apr 2021 10:14:00 +0000 (12:14 +0200)]
dnsdist: Add a TSAN suppressions list
Remi Gacogne [Wed, 7 Apr 2021 10:11:46 +0000 (12:11 +0200)]
dnsdist: Make IDState.age atomic when TSAN is enabled
Remi Gacogne [Wed, 7 Apr 2021 10:11:10 +0000 (12:11 +0200)]
dnsdist: Prevent a race when updating the TeeAction metrics
Remi Gacogne [Wed, 7 Apr 2021 10:10:15 +0000 (12:10 +0200)]
dnsdist: Fix race conditions in QPSAction, QPSPoolAction
Remi Gacogne [Wed, 7 Apr 2021 10:08:59 +0000 (12:08 +0200)]
dnsdist: Prevent a race when reloading TLS certificates
Remi Gacogne [Wed, 7 Apr 2021 10:07:56 +0000 (12:07 +0200)]
dnsdist: Prevent a race in the DelayPipe tests
phonedph1 [Thu, 15 Apr 2021 20:31:30 +0000 (14:31 -0600)]
rec: update setting for aggressive-nsec-cache-size
phonedph1 [Thu, 15 Apr 2021 17:38:35 +0000 (11:38 -0600)]
Update validate.cc
phonedph1 [Thu, 15 Apr 2021 16:57:15 +0000 (10:57 -0600)]
rec: print the covering NSEC
It would be nice to log not only that a name is covered, but what entry actually covers it. This is useful in debugging crazy setups.
Peter van Dijk [Thu, 15 Apr 2021 15:33:58 +0000 (17:33 +0200)]
mention dig +qr
Otto Moerbeek [Thu, 15 Apr 2021 13:05:44 +0000 (15:05 +0200)]
Merge pull request #10295 from omoerbeek/changelog-revert
Revert previous change to changelog, they should not be changed.
Peter van Dijk [Thu, 15 Apr 2021 12:34:34 +0000 (14:34 +0200)]
add numbers to diagram
Peter van Dijk [Thu, 15 Apr 2021 12:31:08 +0000 (14:31 +0200)]
add diagram
Peter van Dijk [Thu, 15 Apr 2021 12:29:35 +0000 (14:29 +0200)]
more spellcheck
Peter van Dijk [Thu, 15 Apr 2021 12:29:12 +0000 (14:29 +0200)]
spellcheck
Peter van Dijk [Thu, 15 Apr 2021 12:28:59 +0000 (14:28 +0200)]
replace IP
Peter van Dijk [Thu, 15 Apr 2021 12:27:01 +0000 (14:27 +0200)]
explain why 512 is enough
Peter van Dijk [Thu, 15 Apr 2021 12:21:44 +0000 (14:21 +0200)]
start off recursor FAQ with some talk about EDNS bufsizes
Peter van Dijk [Thu, 15 Apr 2021 11:52:36 +0000 (13:52 +0200)]
formatting nit
Otto [Thu, 15 Apr 2021 06:48:56 +0000 (08:48 +0200)]
Revert previous change to changelog, they should not be changed.
Otto Moerbeek [Thu, 15 Apr 2021 06:39:09 +0000 (08:39 +0200)]
Merge pull request #10287 from xiaolong-666/master
rec: remove delegation only (issue #7544)
xiaolong [Tue, 13 Apr 2021 02:47:20 +0000 (10:47 +0800)]
Remove `delegation-only` from the recursor #7544
Peter van Dijk [Wed, 14 Apr 2021 16:46:27 +0000 (18:46 +0200)]
the code is not glibc specific
Peter van Dijk [Wed, 14 Apr 2021 16:28:20 +0000 (18:28 +0200)]
comments from code review
Peter van Dijk [Wed, 14 Apr 2021 16:26:09 +0000 (18:26 +0200)]
auto, reinterpret_cast
Co-authored-by: Remi Gacogne <rgacogne+github@valombre.net>
Otto Moerbeek [Wed, 14 Apr 2021 08:04:29 +0000 (10:04 +0200)]
Merge pull request #10285 from omoerbeek/rec-prep-4.5.0-beta2
rec: Prep for rec-4.5.0-beta2
Peter van Dijk [Tue, 13 Apr 2021 19:06:33 +0000 (21:06 +0200)]
add tests
Co-authored-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Peter van Dijk [Mon, 12 Apr 2021 10:24:17 +0000 (12:24 +0200)]
rpz dumper: stop generating double zz labels on networks that start with zeroes
(partial rewrite; adds tests)
Otto Moerbeek [Tue, 13 Apr 2021 14:27:44 +0000 (16:27 +0200)]
Merge pull request #10291 from omoerbeek/rec-rpz-seed-error
Exception loading the RPZ seedfile is not fatal.
Peter van Dijk [Tue, 13 Apr 2021 13:46:59 +0000 (15:46 +0200)]
Merge pull request #10148 from Habbie/centos-8-stream-builds
builder, gh actions: add centos-8-stream build
Otto Moerbeek [Tue, 13 Apr 2021 13:19:00 +0000 (15:19 +0200)]
Merge pull request #10288 from omoerbeek/rec-deprecate-settings
rec: Stop using potentially offensive names internally and warn about deprecated settings.
Otto [Tue, 13 Apr 2021 13:16:09 +0000 (15:16 +0200)]
Exception loading the RPZ seedfile is not fatal.
Catch PDNSException and clear on failure.
Peter van Dijk [Fri, 9 Apr 2021 12:25:07 +0000 (14:25 +0200)]
narrower wildcard for matching centos stream
Peter van Dijk [Fri, 5 Mar 2021 10:34:20 +0000 (11:34 +0100)]
gh actions: add centos-8-stream build
Peter van Dijk [Fri, 5 Mar 2021 09:31:24 +0000 (10:31 +0100)]
builder: add centos 8 stream support
Otto Moerbeek [Tue, 13 Apr 2021 10:33:25 +0000 (12:33 +0200)]
Merge pull request #10276 from omoerbeek/rec-qm-aaaa-only
rec: First check the cache for NS name to address contents for both v4 and v6
Otto [Tue, 13 Apr 2021 09:20:57 +0000 (11:20 +0200)]
Fix comments and a redundant test from review.
Otto [Tue, 13 Apr 2021 09:03:47 +0000 (11:03 +0200)]
typos
Otto [Tue, 13 Apr 2021 08:47:38 +0000 (10:47 +0200)]
Stop using potentially offensive names internally and warn about
deprecated settings.
Otto [Mon, 12 Apr 2021 07:48:59 +0000 (09:48 +0200)]
Prep for rec-4.5.0-beta2
Otto Moerbeek [Fri, 9 Apr 2021 13:04:04 +0000 (15:04 +0200)]
Merge pull request #10245 from omoerbeek/qclass
Make QClass a class, including toString() method
Peter van Dijk [Fri, 9 Apr 2021 12:35:49 +0000 (14:35 +0200)]
Merge pull request #10281 from Habbie/dnsdist-getpool-docs
dnsdist docs: remove addPool; clarify that getPool creates pools
Peter van Dijk [Fri, 9 Apr 2021 12:05:16 +0000 (14:05 +0200)]
Merge pull request #10271 from Habbie/dnspcap-alignment
fix read alignment in dnspcap
Peter van Dijk [Fri, 9 Apr 2021 11:23:24 +0000 (13:23 +0200)]
Merge pull request #10234 from Habbie/qtype-names-csync
qtypes: check type registration; add CSYNC
Peter van Dijk [Fri, 9 Apr 2021 11:17:50 +0000 (13:17 +0200)]
Merge pull request #10171 from Habbie/lua-array-next
lua: don't destroy keys during table iteration
Peter van Dijk [Fri, 9 Apr 2021 10:45:30 +0000 (12:45 +0200)]
dnsdist docs: mention the default pool in a few places
Peter van Dijk [Fri, 9 Apr 2021 10:37:17 +0000 (12:37 +0200)]
dnsdist docs: remove addPool; clarify that getPool creates pools
Otto [Fri, 9 Apr 2021 09:50:29 +0000 (11:50 +0200)]
Do not test the individual records' ttls, they should be consistent with the ttl
of the cache entry itself.
Otto [Wed, 7 Apr 2021 12:36:18 +0000 (14:36 +0200)]
First check the cache for NS name to address contents for both
v4 and v6 before going out
This fixes #10263 here, but needs thorough reviewing and testing.
Remi Gacogne [Thu, 8 Apr 2021 07:41:23 +0000 (09:41 +0200)]
Merge pull request #10244 from rgacogne/ddist-better-docs
dnsdist: Document internal design, add tables and pictures
Remi Gacogne [Thu, 8 Apr 2021 07:40:28 +0000 (09:40 +0200)]
Merge pull request #10267 from rgacogne/ddist-dr-bindings
dnsdist: Add missing getEDNSOptions and getDO bindings for DNSResponse
Otto Moerbeek [Wed, 7 Apr 2021 15:16:19 +0000 (17:16 +0200)]
Merge pull request #10275 from omoerbeek/rec-tsan
rec: Fix a few cases discoverd by tsan:
Otto Moerbeek [Wed, 7 Apr 2021 14:00:57 +0000 (16:00 +0200)]
rec: Fix a few cases discoverd by tsan:
- The NegCache and MemRecursorCache destructors were not deadlock free
when running from testrunner. The purpose of the code in the dts
is also unclear, so delete them.
- quit-nicely uses a volatile sig_atomic_t, which is not thread-safe
according to tsan. Replace by atomic.
Otto Moerbeek [Wed, 7 Apr 2021 10:16:31 +0000 (12:16 +0200)]
Merge pull request #10272 from omoerbeek/rec-docs-reorder
rec: Reorder subjects and change titles, to make TOC more logical
Otto Moerbeek [Wed, 7 Apr 2021 09:11:15 +0000 (11:11 +0200)]
Merge pull request #10268 from omoerbeek/rec-frstm-query-addr
rec: Log local IP in dnstap messages
Otto [Wed, 7 Apr 2021 08:55:28 +0000 (10:55 +0200)]
Reorder subjects and change titles, to make TOC more logical
Peter van Dijk [Wed, 7 Apr 2021 08:53:48 +0000 (10:53 +0200)]
Merge pull request #10256 from Habbie/rfc6742-sizeof
RFC6742 types: use correct size
Peter van Dijk [Wed, 7 Apr 2021 08:20:01 +0000 (10:20 +0200)]
fix format specifier for size_t
Co-authored-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Otto Moerbeek [Wed, 7 Apr 2021 08:07:09 +0000 (10:07 +0200)]
Aslo test query_address for value and query_port for presence