Skip to content

Commit 3f99d77

Browse files
committed
chore: added support for all type of dns record
1 parent 58afd5b commit 3f99d77

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

main.go

+12-11
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,14 @@ import (
1010

1111
func parseQuery(m *dns.Msg, qdns *QuickDNSResolver) {
1212
for _, q := range m.Question {
13-
println(q.Name, q.Qtype)
13+
println("Query: ", q.Name, q.Qtype, q.Qclass)
1414
switch q.Qtype {
1515
case dns.TypeNone:
1616
fallthrough
1717
case dns.TypeANY:
1818
fallthrough
1919
case dns.TypeNS:
20-
fallthrough
21-
case dns.TypeA:
2220
{
23-
isQDNS, ip := qdns.ResolveARecord(q.Name)
24-
if isQDNS {
25-
rr, err := dns.NewRR(fmt.Sprintf("%s A %s", q.Name, ip))
26-
if err == nil {
27-
m.Answer = append(m.Answer, rr)
28-
}
29-
}
3021
// ns1.swiftwave.xyz and ns2.swiftwave.xyz
3122
rr, err := dns.NewRR(fmt.Sprintf("%s NS ns1.swiftwave.xyz", q.Name))
3223
if err == nil {
@@ -37,6 +28,16 @@ func parseQuery(m *dns.Msg, qdns *QuickDNSResolver) {
3728
m.Answer = append(m.Answer, rr)
3829
}
3930
}
31+
case dns.TypeA:
32+
{
33+
isQDNS, ip := qdns.ResolveARecord(q.Name)
34+
if isQDNS {
35+
rr, err := dns.NewRR(fmt.Sprintf("%s A %s", q.Name, ip))
36+
if err == nil {
37+
m.Answer = append(m.Answer, rr)
38+
}
39+
}
40+
}
4041
}
4142
}
4243
}
@@ -59,7 +60,7 @@ func main() {
5960
panic(err)
6061
}
6162
// attach request handler func
62-
dns.HandleFunc("swiftwave.xyz", func(w dns.ResponseWriter, m *dns.Msg) {
63+
dns.HandleFunc(".", func(w dns.ResponseWriter, m *dns.Msg) {
6364
handleDnsRequest(w, m, qdns)
6465
})
6566
// start server

quickdns_resolver.go

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package main
33
import (
44
"fmt"
55
"regexp"
6+
"strings"
67
)
78

89
/**
@@ -31,6 +32,7 @@ func NewQuickDNSResolver() (*QuickDNSResolver, error) {
3132
// Returns true if the domain name is in the format ip-3-56-23-12.swiftwave.xyz
3233
// Also returns the IP address
3334
func (q *QuickDNSResolver) ResolveARecord(domain string) (bool, string) {
35+
domain = strings.ToLower(domain)
3436
if matches := q.Regex.FindStringSubmatch(domain); len(matches) == 5 {
3537
ip := fmt.Sprintf("%s.%s.%s.%s", matches[1], matches[2], matches[3], matches[4])
3638
return true, ip

0 commit comments

Comments
 (0)