Commit graph

1377 commits

Author SHA1 Message Date
Frank Denis
70f2f9b424 Avoid duplicate log
Some checks failed
CodeQL scan / Analyze (push) Has been cancelled
GitHub CI / Build (push) Has been cancelled
ShiftLeft Scan / Scan-Build (push) Has been cancelled
2025-02-22 01:20:50 +01:00
Frank Denis
2d8cfebe8b Add some debugging helpers 2025-02-21 23:56:18 +01:00
Frank Denis
f052e0ccdf Reduce SystemResolverIPTTL 2025-02-21 23:34:14 +01:00
Frank Denis
8432827e5d Reduce MinResolverIPTTL 2025-02-21 23:32:55 +01:00
Frank Denis
45a4df8df5 Nits
Some checks are pending
CodeQL scan / Analyze (push) Waiting to run
GitHub CI / Build (push) Waiting to run
ShiftLeft Scan / Scan-Build (push) Waiting to run
2025-02-21 18:16:33 +01:00
Frank Denis
3f3cd1e67d updating_until -> updatingUntil 2025-02-21 18:13:23 +01:00
Frank Denis
a4cbc66fdd http3: RoundTripper was renamed to Transport 2025-02-21 18:12:42 +01:00
Frank Denis
f49196c6e8 xTransport: avoid updating the host->IP map in multiple goroutines
When a goroutine is updating an IP, keep serving the previous IP
to other goroutines.
2025-02-21 18:07:41 +01:00
Pablo Méndez Hernández
2c14511156
Fix typo in comment 2025-02-08 13:43:30 +01:00
Frank Denis
f2527886cc Clarify example 2025-02-02 23:10:00 +01:00
Frank Denis
549426ace7 Reverse test for clarity; no behavioral change 2025-01-26 23:59:36 +01:00
Frank Denis
0ba23128cc Improve comment 2025-01-26 23:28:21 +01:00
Frank Denis
3b75a4c6ac Fix undefined vs empty confusion for tls_cipher_suite
The documentation refers to tls_cipher_suite being empty in order
to use the default parameters, not undefined.

However, configuring an empty set of cipher suites did just that:
no cipher suites could be used, which is not very useful.

Fix the documentation: in order to use the default suites, the
parameter must be undefined, not empty.

And in code, make an empty set equivalent to the parameter being
undefined.
2025-01-26 23:18:03 +01:00
Frank Denis
eb2c1dc6b3 plugin_forward: silently skip '*.' prefixes 2025-01-17 23:01:40 +01:00
Frank Denis
8f2be59a82 Error out on domain names with wildcards in captive portals 2025-01-17 23:01:07 +01:00
Frank Denis
6dd22becac More heuristics to detect valid plain DNS responses 2025-01-11 15:29:49 +01:00
Frank Denis
f332394c4b More heuristics to detect lying resolvers 2025-01-11 15:17:11 +01:00
Frank Denis
d469ad1396 Update ChangeLog, bump 2025-01-11 13:23:00 +01:00
Frank Denis
062dc53971 Revert "Remove support for xsalsapoly"
Apparently, a bunch of popular resolvers such as adguard, cleanbrowsing
and comodo still only support xsalsapoly o_O

Add a lying resolver check for old DNSCrypt servers.
2025-01-11 13:02:18 +01:00
Frank Denis
0208ecf35a Skip DHCP detectors that couldn't be started 2025-01-10 23:40:41 +01:00
Frank Denis
cff909aa6f Raise a critical error if the DHCP detector can't be started 2025-01-10 23:33:41 +01:00
Frank Denis
08fc560129 Change error levels 2025-01-10 23:30:41 +01:00
Frank Denis
65ada71a34 DHCP detection doesn't seem to work as non-root
Maybe it should be started before the uid switch
2025-01-10 23:27:41 +01:00
Frank Denis
5b8c65a42e Revert Quad9 example Minisign key 2025-01-10 23:22:41 +01:00
Frank Denis
1a3a68e899 Bump 2025-01-10 23:17:41 +01:00
Frank Denis
7d2eede907 Bump the refresh delay for sources by a hour
This allows for a better distribution
2025-01-10 23:09:41 +01:00
Frank Denis
956f16c107 Log the actual server IP 2025-01-10 23:02:41 +01:00
Frank Denis
5aa958e282 Fix sequence type for $DHCP 2025-01-10 12:52:52 +01:00
Frank Denis
b5a50655de Go fixes 2025-01-10 12:46:26 +01:00
Frank Denis
eda26b4a79 Support $DHCP and $BOOTSTRAP keywords in forwarding rules
Ideally, that should also be supported by the captive portal
handler.

Great work by @lifenjoiner

Fixes #2460
2025-01-10 12:38:27 +01:00
Frank Denis
4fbdf2cfcc Skip lying resolvers instead of just warning about them 2025-01-10 12:12:20 +01:00
Frank Denis
c4879a21f7 Trim unneeded entries
These servers never supported the DNSCrypt v2 protocol, and have
been a pain to maintain compatibility with. But the main issue
is that in some countries, they are now lying resolvers, *except*
for the certificate.

That makes it difficult to reliably detect that they are lying
resolvers. From a user perspective in these countries, it appears
that DNS queries randomly fail, when they are hitting these servers.

I tried to think of different ways to detect this, but couldn't
find anything satisfactory.

Maybe if they properly implement the DNSCrypt protocol some day,
they will take it as an opportunity to also fix that bug, and
return consistent error codes, even for the certificates.
2025-01-10 12:10:20 +01:00
Frank Denis
8987906653 Remove support for xsalsapoly 2025-01-10 12:07:20 +01:00
Frank Denis
55b2ed9851 Improve error message when no servers can be used 2024-10-30 20:12:55 +01:00
Frank Denis
8d43ebf120 EmptyResponseFromMessage: always set the RA flag, copy the RD flag 2024-10-28 23:59:01 +01:00
Frank Denis
56bc6e6a06 Update Quad9 signing key
See https://github.com/Quad9DNS/dnscrypt-settings/pull/7
2024-08-06 22:31:44 +02:00
Frank Denis
6a3fe63ad2 Add 'cisco-sandbox' to the list of broken resolvers 2024-07-03 14:02:11 +02:00
Frank Denis
31dcab22b6 Discourage from using very low values for the timeout 2024-07-03 01:58:12 +02:00
cloudclaim
1905c9ac46 chore: fix some comments
Signed-off-by: cloudclaim <824973921@qq.com>
2024-06-07 16:28:29 +08:00
Frank Denis
35d7aa0603 Print error when the lying resolver test fails 2024-05-19 18:17:05 +02:00
Frank Denis
249dba391d Support gzip compression to fetch source files 2024-04-25 12:43:29 +02:00
Frank Denis
987ae216e3 Add fritz.box to the set of undelegated zones 2024-04-21 20:14:15 +02:00
Frank Denis
7fba32651b Make it more visible that DNS64 has been enabled 2024-04-19 18:27:39 +02:00
Frank Denis
6ae388e646 DNS64 plugin: don't return SYNTH data, alter the response directly
Fixes #2619

However, cached responses now appear with the "PASS" status rather
than "CLOAK".
2024-04-19 18:19:16 +02:00
cuibuwei
2c6416d5ae chore: fix some typos in comments
Signed-off-by: cuibuwei <cuibuwei@gmail.com>
2024-04-13 19:56:31 +08:00
Frank Denis
4d1cd67d4d Nits 2024-04-03 16:49:37 +02:00
Frank Denis
363d44919f Properly check for the sticky bit 2024-04-03 16:47:13 +02:00
Robert Edmonds
49000cd4f4 Forwarding plugin: Support forwarding subdomains of the root domain
This commit updates the forwarding plugin to support matching subdomains
of the root domain ("."). It looks like the forwarding plugin already
performs subdomain matches against the domains specified in the
forwarding rules files, but matches against the root domain weren't
working because of the way matches are performed by comparing the
normalized presentation format QNAME (which omits the trailing dot for
all QNAMEs except the root domain name).

Without this commit, only queries where the QNAME is exactly "."
would match a forwarding rule for the "." domain, like this (with
`offline_mode = true` and a single forwarding rule for the "." domain):

```
[2024-03-25 21:13:31]	100.100.100.100	.	NS	FORWARD	0ms	127.0.0.1:53
[2024-03-25 21:13:36]	100.100.100.100	com	NS	NOT_READY	0ms	-
```

With this commit I get the expected result:

```
[2024-03-25 21:40:07]	100.100.100.100	.	NS	FORWARD	0ms	127.0.0.1:53
[2024-03-25 21:40:09]	100.100.100.100	com	NS	FORWARD	0ms	127.0.0.1:53
```
2024-03-25 21:30:09 -04:00
YX Hao
8d43ce9b56 make expression be more self-explanatory 2024-02-27 22:05:40 +08:00
YX Hao
ac5087315c Listen 0.0.0.0 only on IPv4 2024-02-27 19:04:09 +08:00