sing-box/dns
Berkay Özdemirci 5a957fd750
Fix EDNS OPT record corruption in DNS cache
The TTL computation and assignment loops treat OPT record's Hdr.Ttl
as a regular TTL, but per RFC 6891 it encodes EDNS0 metadata
(ExtRCode|Version|Flags). This corrupts cached responses causing
systemd-resolved to reject them with EDNS version 255.

Also fix pointer aliasing: storeCache() stored raw *dns.Msg pointer
so subsequent mutations by Exchange() corrupted cached data.

- Skip OPT records in all TTL loops (Exchange + loadResponse)
- Use message.Copy() in storeCache() to isolate cache from mutations
2026-04-10 14:08:24 +08:00
..
transport Fix DNS transport returning error for empty AAAA response 2026-03-23 19:21:55 +08:00
client.go Fix EDNS OPT record corruption in DNS cache 2026-04-10 14:08:24 +08:00
client_log.go refactor: DNS 2025-07-08 13:12:14 +08:00
client_truncate.go Fix dns truncate 2025-10-05 17:58:21 +08:00
extension_edns0_subnet.go Fix set edns0 client subnet 2025-07-08 13:14:38 +08:00
rcode.go Fix DNS exchange 2025-09-12 18:05:02 +08:00
router.go Fix legacy DNS defaults on final transport 2026-03-09 20:06:34 +08:00
transport_adapter.go refactor: Outbound domain resolver 2025-07-08 13:12:14 +08:00
transport_dialer.go Fix DNS packet size 2025-09-08 09:12:30 +08:00
transport_manager.go Improve local DNS server on darwin 2026-01-17 05:44:28 +08:00
transport_registry.go refactor: DNS 2025-07-08 13:12:14 +08:00