/*
* Copyright (C) 2024 Jonni Liljamo <jonni@liljamo.com>
*
* This file is licensed under AGPL-3.0-or-later, see NOTICE and LICENSE for
* more information.
*/
package dns
import (
"log/slog"
"github.com/miekg/dns"
)
func handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) {
m := new(dns.Msg)
m.SetReply(r)
m.Compress = false
m.SetEdns0(4096, true)
switch r.Opcode {
case dns.OpcodeQuery:
parseQuery(m, r)
default:
slog.Info("Unsupported Opcode", slog.String("type", dns.OpcodeToString[r.Opcode]))
m.SetRcode(r, dns.RcodeNotImplemented)
}
w.WriteMsg(m)
}