diff --git a/main.go b/main.go index d5f139b..1229cf8 100644 --- a/main.go +++ b/main.go @@ -249,9 +249,9 @@ func handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) { case dns.TypeAAAA: // IPv6-Anfrage // Beispielhafte IPv6-Adresse für Demonstration - ip, exists := D[strings.ToLower(q.Name)] - if exists && !strings.EqualFold(ip.Ipv6, "") { - rr, err := dns.NewRR(strings.ToLower(q.Name) + " AAAA " + ip.Ipv6) + ip6, exists := D[strings.ToLower(q.Name)] + if exists && !strings.EqualFold(ip6.Ipv6, "") { + rr, err := dns.NewRR(strings.ToLower(q.Name) + " AAAA " + ip6.Ipv6) if err == nil { if DEBUG { WriteLog("~", "handleDNSRequest", "case dns.TypeAAAA", "D[q.Name]", D[strings.ToLower(q.Name)], "q.Name", strings.ToLower(q.Name)) @@ -299,6 +299,44 @@ func handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) { } } } + case dns.TypeANY: + ip, exists := D[strings.ToLower(q.Name)] + if exists { + rr, err := dns.NewRR(strings.ToLower(q.Name) + " A " + ip.Ipv4) + if err == nil { + if DEBUG { + WriteLog("~", "handleDNSRequest", "case dns.TypeANY", "D[q.Name]", D[strings.ToLower(q.Name)], "q.Name", strings.ToLower(q.Name)) + } + msg.Answer = append(msg.Answer, rr) + } else { + if DEBUG { + WriteLog("!", "handleDNSRequest", "case dns.TypeANY", "IPv4", "error", err) + } + } + } else { + if DEBUG { + WriteLog("!", "handleDNSRequest", "case dns.TypeANY", "not found in D", strings.ToLower(q.Name)) + } + } + // Beispielhafte IPv6-Adresse für Demonstration + ip6, exists := D[strings.ToLower(q.Name)] + if exists && !strings.EqualFold(ip6.Ipv6, "") { + rr, err := dns.NewRR(strings.ToLower(q.Name) + " AAAA " + ip6.Ipv6) + if err == nil { + if DEBUG { + WriteLog("~", "handleDNSRequest", "case dns.TypeANY", "D[q.Name]", D[strings.ToLower(q.Name)], "q.Name", strings.ToLower(q.Name)) + } + msg.Answer = append(msg.Answer, rr) + } else { + if DEBUG { + WriteLog("!", "handleDNSRequest", "case dns.TypeANY", "IPv6", "error", err) + } + } + } else { + if DEBUG { + WriteLog("!", "handleDNSRequest", "case dns.TypeANY", "not found in D", strings.ToLower(q.Name)) + } + } default: if DEBUG { WriteLog("+", "unhandledDNSRequest", r.Question, strings.ToLower(q.Name), q.Qclass, q.Qtype)