- T01 – Fix DNS compressed-name parsing regression — Address issue #26 in
Dns/DnsProtocol/DnsMessageand add regression tests to ensure compliant decoding/encoding under RFC 1035. - T02 – Authoritative response verification suite — Added
dnstestintegration coverage that bootsdns-cliwith deterministic zone/config assets to assert AA/RA/SOA flags, TTL stability, and NXDOMAIN authority responses (run viadotnet test csharp-dns-server.sln). - T03 – Implement RFC 2308-compliant caching — Extend
DnsServer/DnsCacheto honor positive/negative TTLs, flush stale entries, and cover with tests (issue #15). - T04 – Harden SmartZoneResolver concurrency — Ensure zone reloads and address dispensers are thread-safe and resilient to null/empty provider updates.
- T05 – Health-probe simulation tests — Build deterministic tests for
Dns/ZoneProvider/IPProbestrategies to guarantee consistent handling of latency/timeouts. - T06 – Migrate to Microsoft.Extensions.DependencyInjection — Replace Ninject usage in
Dns/Program.csand related projects with built-in DI, updating configuration wiring accordingly. - T07 – Upgrade solution to .NET 8 — Move all projects to
net8.0, update dependencies, and validate builds/tests across Windows/Linux. - T08 – Instrument DNS & HTTP surfaces (OpenTelemetry-ready) — Add metrics/tracing hooks (without bundling collectors) so operators can export via OTLP (issue #16).
- T09 – Fix CA2241 format warning — Update the logging call in
Dns/DnsServer.cs(line 250) to use the correct string-format arguments so builds are warning-free. - T10 – Secure HTTP admin surface — Provide configuration for bindings/authz and document operational guidance to avoid exposing diagnostic endpoints unintentionally.
- T11 – Complete BIND zone provider — Implement parsing logic for
Dns/ZoneProvider/Bind, supporting$ORIGIN,$TTL, and core record types (addresses “Static Zone declaration file” issue #1). - T12 – Add dynamic configuration providers — Introduce REST/service-backed configuration sources with validation and hot reload pipelines (issues #7/#8/#19).
- T13 – Implement parental/time-based/MAC policies — Deliver requested zone behaviors (issues #3/#4/#9) leveraging the SmartZoneResolver framework.
- T14 – Extend health probes (HTTP/TCP) — Add richer probe strategies with retries/weights within the IPProbe provider.
- T15 – Enhance HTTP operational UX — Replace HTML dumps with JSON/metrics endpoints and improvements requested in issue #25.
- T16 – Trace logging tools — Implement structured trace logging and tooling per issue #10.
- T17 – Implement BitPacker.Write — Complete the BitPacker.Write implementation and accompanying tests (issue #11).
- T18 – Windows/NT service packaging — Add installers/scripts so the server can run as a Windows service (issue #5).
- T19 – DNSSEC support — Add foundational DNSSEC record handling and validation paths (issue #2).
- T20 – Documented static zone workflow — Provide a simple static zone declaration option (issue #1) for setups that don’t rely on the BIND parser.
- T21 – Fix AppVeyor build configuration — Repair
appveyor.ymlso CI restores/builds/tests the .NET solution using the current SDK/runtime matrix. - T22 – Add GitHub Actions CI pipeline — Introduce a workflow under
.github/workflows/that restores, builds, and tests the solution on Windows/Linux runners aligned with PR gating guidance. - T23 – Correct IPv4 RDATA endianness (Critical) — Fix
ANameRData.Parseso addresses parsed from wire format are not byte-swapped before being forwarded to clients; add regression tests. - T24 – Stabilize UDP listener shutdown & endpoint capture (High) — Refactored
Dns/UdpListenerwith cancellation-aware start/stop behavior, per-packet endpoint cloning, and new tests ensuring clean shutdown plus correct response routing. - T25 – Support larger UDP payloads (Medium) — Increase
UdpListenerbuffer sizing and/or detect truncated packets so EDNS-sized responses don’t silently corrupt parsing. - T26 – Allow full 8-bit DNS labels (Medium) — Relax
DnsProtocol.ReadStringASCII enforcement in line with RFC 2181 so internationalized/underscored names don’t throw. - T27 – Refresh VS Code launch/tasks configs — Update
.vscode/launch.jsonandtasks.jsonto mirror the current build/test/debug workflow so contributors get accurate defaults. - T28 – Evaluate grammar-based BIND parsing — Prototype a BIND zone grammar in BNF/EBNF and assess tooling like Irony (lexer/parser generators) to simplify maintenance versus the current handwritten parser; document findings and recommended next steps.
- T29 – IPv6 resolution support — Extend SmartZoneResolver/DnsServer so AAAA records flow end-to-end (zone providers, dispensers, response writer) with regression tests proving dual-stack answers work across providers.