Commit Graph

11 Commits

Author SHA1 Message Date
e6ab6fa20d fix: update PKGBUILD URL to mohamad/doh-forwarder repo 2026-07-06 19:24:37 +03:30
4c62b1436a feat: add Arch Linux package (PKGBUILD, systemd service, sysusers)
- PKGBUILD for building the package
- Systemd service with CAP_NET_BIND_SERVICE for port 53
- sysusers.d config to create doh-forwarder system user
- Default config at /etc/doh-forwarder/config.toml
v0.1.0-rc.1
2026-07-06 18:58:48 +03:30
65acc836d0 docs: update plan and develop to match current implementation
- Update architecture diagram: dual-protocol forwarder (DNS + DoH)
- Update goals to reflect what's built
- Update tech stack (added reqwest, base64, thiserror)
- Update directory structure to match real file tree
- Mark M2 as fully done, M3 done with UDP/TCP tests pending
- Update DEVELOP.md quick start commands
2026-07-06 18:23:17 +03:30
5fcbc7be03 fix: retry with next resolver on failure for both strategies
Round-robin now retries with the next resolver when one fails,
instead of returning the error immediately. Also reduced connect
timeout to 3s and total timeout to 5s for faster failover.
2026-07-06 18:06:43 +03:30
b56bdf628b docs: mark M3 Local DNS Listener as done 2026-07-06 17:58:40 +03:30
a9584ab940 feat: implement M3 — UDP/TCP DNS listener
- Add DnsListener that binds UDP and TCP on configurable port
- Add [dns] config section with listen address (default 0.0.0.0:5353)
- DNS over TCP uses 2-byte length prefix (RFC 1035 §4.2.2)
- Forward queries through existing DoH pipeline
- Start DNS listener as background task alongside DoH server
2026-07-06 17:57:04 +03:30
72198bb868 docs: add M3 Local DNS Listener milestone, shift caching to M4 2026-07-06 17:22:17 +03:30
f10ef5b6bd docs: add README with usage, config, and API reference 2026-07-06 17:16:11 +03:30
13bf8ba528 feat: implement M2 — multiple upstreams & config
- Failover strategy: try resolvers in order until one succeeds
- Env var overrides: DOH_LISTEN, DOH_UPSTREAM_STRATEGY, DOH_UPSTREAM_RESOLVERS
- Graceful shutdown on SIGINT/SIGTERM
- Strategy parsed from config string to enum
- 14 tests passing, clippy clean, fmt clean
2026-07-06 17:13:45 +03:30
3a5c0d2aba feat: implement M1 — core DoH forwarding
- Axum HTTP server with /dns-query endpoint (GET + POST per RFC 8484)
- DNS wire-format parsing via hickory-proto
- Upstream DoH client with round-robin selection
- TOML config file with resolver definitions
- SERVFAIL fallback when upstream is unreachable
- /health endpoint
- Unit tests (7) and integration tests (5)
- Zero warnings, clippy clean, fmt clean
2026-07-06 16:42:28 +03:30
b11d042732 docs: add project plan and development rules
- docs/plan.md: project overview, architecture, milestones, directory structure
- DEVELOP.md: dev rules, code quality standards, git workflow, testing rules, milestone tracking
2026-07-06 16:00:48 +03:30