diff options
| author | jet2tlf <jet2tlf@gmail.com> | 2024-06-03 06:10:24 +0000 |
|---|---|---|
| committer | jet2tlf <jet2tlf@gmail.com> | 2024-06-03 06:10:24 +0000 |
| commit | 2f10e3ad86390ab452c2c3a2128c41d515f76e7d (patch) | |
| tree | 72f792c9e36033a1bcbfe801b4a78042bea1f05a /app/main.go | |
| parent | 8659adcd1500f8e199ccef1c255130327a7597f2 (diff) | |
| download | dns-server-go-2f10e3ad86390ab452c2c3a2128c41d515f76e7d.tar.gz dns-server-go-2f10e3ad86390ab452c2c3a2128c41d515f76e7d.zip | |
Diffstat (limited to 'app/main.go')
| -rw-r--r-- | app/main.go | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/app/main.go b/app/main.go index b02972d..023988c 100644 --- a/app/main.go +++ b/app/main.go @@ -1,11 +1,16 @@ package main import ( + "flag" "fmt" "net" ) func main() { + var resolver string + flag.StringVar(&resolver, "resolver", "1.1.1.1:53", "DNS resolver to forward queries to") + flag.Parse() + udpAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:2053") if err != nil { fmt.Println("Failed to resol[]byteve UDP address:", err) @@ -31,7 +36,9 @@ func main() { receivedData := string(buf[:size]) fmt.Printf("Received %d bytes from %s: %s\n", size, source, receivedData) requestHeader := ParseHeader(buf[:size]) - questions := ParseQuestions(buf[:size], requestHeader.QDCOUNT) + questions, _ := ParseQuestions(buf[:size], requestHeader.QDCOUNT) + + answers := ForwardQuestions(resolver, questions, requestHeader.ID) rcode := uint8(4) if requestHeader.OPCODE == 0 { @@ -58,7 +65,9 @@ func main() { for _, question := range questions { response.AddQuestion(question) - answer := MakeAnswer(question.Name, []byte("\x08\x08\x08\x08")) + } + + for _, answer := range answers { response.AddAnswer(answer) } |