v2.0.0-rc9

tashfeenahmed/freellmapiv2.0.0-rc9Nov 5, 2025by qdm12

AI Summary

This release addresses critical stability issues, particularly regarding listening on non-standard ports and system-wide nameserver modification. It includes performance optimizations for large file scanning and upgrades the Go runtime to version 1.25.

Key Highlights

  • Re-added 'plain' upstream type for debugging and Gluetun compatibility.
  • Fixed support for listening on ports other than the default 53.
  • Optimized code scanning for large files in the block builder.
  • Upgraded Go version from 1.23 to 1.25.
  • Improved Windows IPv6 and DNS server detection.

New Features

  • Plain upstream type for debugging.
  • Round trip duration included in error messages.
  • Map filter by IP version to reduce memory usage.
  • Reverted to `tls.Client` for finer control in `pkg/dot`.
  • Context cancellation feature added via dependency bump.

Full Release Notes

## Features

- Re-add "plain" upstream type (needed for debugging and Gluetun)
- pkg/exchanger: add round trip duration to error message
- pkg/middlewares/filter/mapfilter
  - map filter by IP version to reduce memory usage

## Fixes

- Listening on another port than 53 now works
- lowercase all question Name field to avoid any oddities
- internal/dns: loop fixed to handle error before subsequent start completes (fixing whole program being stuck at starting steps)
- do not modify system wide nameservers on Unix systems to avoid permission issues
- internal/support/ipv6:
  - try both cloudflare and google in case one is not available (hum hum cloudflare)
  - detection failure logged as warning not error
- pkg/blockbuilder: skip malformed hostnames instead of returning an error
- pkg/middlewares/localdns:
  - only use DNS servers with a private IP address
  - lowercase all fqdns before checking for locality
- pkg/middlewares/filter/mapfilter
  - blocked ip prefixes metric fixed
- pkg/nameserver: get both private and public DNS servers on Windows

## Maintenance

- pkg/dot: revert to use `tls.Client` and finer steps for more control
- pkg/blockbuilder: optimized code scanning big files line by line
- bump Go from 1.23 to 1.25
- upgrade linter to v2.4.0
- Dependencies
  - bump qdm12/goservices to 6bee97bd4978 in order to have the httpserver handler context cancelation feature
- CI
  - bump actions/setup-go from v2 to v6
  - use Go version from go.mod
  - bump Alpine from 3.20 to 3.22
  - pull container images at build time from ghcr.io when possible
- disable package comments requirement warning in dev container
- upgrade dev container to v0.21 
  - Go upgraded from 1.23 to 1.25
  - golangci-lint upgraded to v2.4.0
  - Alpine upgraded from 3.20 to 3.22
  - Disable package comment requirement by gopls' staticcheck
  - Pull container image from ghcr.io