diff options
| author | radhitya <alif@radhitya.org> | 2026-06-18 12:42:29 +0700 |
|---|---|---|
| committer | radhitya <alif@radhitya.org> | 2026-06-18 12:42:29 +0700 |
| commit | f5753c6a8cac5a57a042b0388f38abeff5d1f37d (patch) | |
| tree | 96e1241126b23051725edb68a79c8e4603d7e23a /internal/server/doh.go | |
| parent | e05835493f821055e517a3988c6f9256abbc5c24 (diff) | |
migration to new dns library
Diffstat (limited to 'internal/server/doh.go')
| -rw-r--r-- | internal/server/doh.go | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/internal/server/doh.go b/internal/server/doh.go index b46736e..2f9dfc0 100644 --- a/internal/server/doh.go +++ b/internal/server/doh.go @@ -2,7 +2,7 @@ package server import ( "encoding/base64" - "github.com/miekg/dns" + "codeberg.org/miekg/dns" "io" "log/slog" "net/http" @@ -42,7 +42,8 @@ func (s *Server) dohHandler(w http.ResponseWriter, r *http.Request) { } msg := new(dns.Msg) - if err := msg.Unpack(raw); err != nil { + msg.Data = raw + if err := msg.Unpack(); err != nil { http.Error(w, "invalid dns message", http.StatusBadRequest) return } @@ -53,22 +54,21 @@ func (s *Server) dohHandler(w http.ResponseWriter, r *http.Request) { } resp, _ := s.buildResponse(msg) - packed, err := resp.Pack() - if err != nil { + if err := resp.Pack(); err != nil { http.Error(w, "pack response", http.StatusInternalServerError) return } w.Header().Set("Content-Type", "application/dns-message") w.Header().Set("Cache-Control", "no-cache, max-age=0") - if _, err := w.Write(packed); err != nil { + if _, err := w.Write(resp.Data); err != nil { slog.Error("doh write failed", "err", err) return } slog.Info("doh query served", - "qname", msg.Question[0].Name, - "qtype", dns.TypeToString[msg.Question[0].Qtype], + "qname", msg.Question[0].Header().Name, + "qtype", dns.TypeToString[dns.RRToType(msg.Question[0])], "rcode", dns.RcodeToString[resp.Rcode], "client", r.RemoteAddr, ) |
