summaryrefslogtreecommitdiff
path: root/internal/server/server.go
diff options
context:
space:
mode:
authorradhitya <alif@radhitya.org>2026-06-13 16:09:53 +0700
committerradhitya <alif@radhitya.org>2026-06-13 16:09:53 +0700
commit3e44adc94f32bfe500730fcbf1c02cedf65b0a30 (patch)
tree66932e0f386ba1277506e9d1fb18eaaad70bfef3 /internal/server/server.go
parentd802d4a685016be8b79c89b4f21099b9a1569532 (diff)
root hints, glue record, delegation loop, iterative, ns fallback, timeout, glue record
Diffstat (limited to 'internal/server/server.go')
-rw-r--r--internal/server/server.go17
1 files changed, 9 insertions, 8 deletions
diff --git a/internal/server/server.go b/internal/server/server.go
index f40648e..3114073 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -7,20 +7,21 @@ import (
"time"
"github.com/miekg/dns"
+ "sdns/internal/resolver"
)
type Server struct {
- logger *slog.Logger
- udp *dns.Server
- tcp *dns.Server
- doh *http.Server
+ logger *slog.Logger
+ resolver *resolver.Resolver
+ udp *dns.Server
+ tcp *dns.Server
+ doh *http.Server
}
-func New(udpAddr, tcpAddr, dohAddr string, logger *slog.Logger) (*Server, error) {
+func New(udpAddr, tcpAddr, dohAddr string, logger *slog.Logger, r *resolver.Resolver) (*Server, error) {
+ s := &Server{logger: logger, resolver: r}
mux := dns.NewServeMux()
- mux.HandleFunc(".", handleQuery)
-
- s := &Server{logger: logger}
+ mux.HandleFunc(".", s.handleQuery)
if udpAddr != "" {
s.udp = &dns.Server{