feat: implement CachingResolver with per-server query caching #5

Merged
gary merged 1 commits from agent/go-expert-developer/f5bcb2fe into main 2026-06-05 06:05:04 +00:00
Owner

Add Resolver interface, BasicResolver, and CachingResolver to internal/dns.

CachingResolver wraps any Resolver with an in-memory cache keyed by
(server IP, name, type, class). Cache entries respect DNS TTL from
responses, falling back to a configurable default TTL. Thread-safe
using sync.RWMutex. Includes Len, Clear, and PurgeExpired methods
for cache management.

Closes HAN-379 (Phase 2.2).

Co-authored-by: multica-agent github@multica.ai

Add Resolver interface, BasicResolver, and CachingResolver to internal/dns. CachingResolver wraps any Resolver with an in-memory cache keyed by (server IP, name, type, class). Cache entries respect DNS TTL from responses, falling back to a configurable default TTL. Thread-safe using sync.RWMutex. Includes Len, Clear, and PurgeExpired methods for cache management. Closes HAN-379 (Phase 2.2). Co-authored-by: multica-agent <github@multica.ai>
gary added 1 commit 2026-06-05 06:04:48 +00:00
feat: implement CachingResolver with per-server query caching
CI / test (pull_request) Failing after 3h13m39s
db3ad498f6
Add Resolver interface, BasicResolver, and CachingResolver to internal/dns.

CachingResolver wraps any Resolver with an in-memory cache keyed by
(server IP, name, type, class). Cache entries respect DNS TTL from
responses, falling back to a configurable default TTL. Thread-safe
using sync.RWMutex. Includes Len, Clear, and PurgeExpired methods
for cache management.

Closes HAN-379 (Phase 2.2).

Co-authored-by: multica-agent <github@multica.ai>
gary merged commit 194bc97526 into main 2026-06-05 06:05:04 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: HansenITSolutions/ExploreDNS#5