What's Changed
Features
- Add Extended DNS Error (EDE) support with proper caching
- Add wildcard domain support to blocklist (*.example.com)
- Modernize codebase for Go 1.23+ compatibility
Bug Fixes
- Fix EDE information not being preserved in cached responses
- Fix goroutine leak in resolver fallback handling
- Fix context timeout errors returning blank EDE messages
- Fix DoQ test failures by removing KeepAlivePeriod
- Fix blocklist SOA record placement
Performance Improvements
- Optimize blocklist wildcard matching (360x faster for large lists)
- Add fast path for empty blocklists
- Use math/rand/v2 for better performance
- Optimize extractRRSet for single-type queries
Code Quality
- Replace interface{} with any throughout codebase
- Use slices package for slice operations
- Use clear() builtin for map/slice clearing
- Add comprehensive tests for EDE functionality
- Improve error handling with errors.Is()
Other Changes
- Rename zregister.go to registry.go for clarity
- Improve snap packaging with automatic release detection
- Add GitHub Actions workflow for snap releases
- Update documentation and examples