From b6e44d93bc3d1d94744bb61ff4e85029695b0b85 Mon Sep 17 00:00:00 2001 From: "Jonathan Leibiusky @xetorthio" Date: Fri, 24 Feb 2017 10:54:15 -0300 Subject: [PATCH] Also listen our dns server on tcp, so when we fail on udp and client retries on tcp, we also fail fast. --- api.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/api.go b/api.go index 1c538d6..744f104 100644 --- a/api.go +++ b/api.go @@ -28,10 +28,17 @@ func main() { bypassCaptcha := len(os.Getenv("GOOGLE_RECAPTCHA_DISABLED")) > 0 // Start the DNS server - dnsServer := &dns.Server{Addr: ":53", Net: "udp"} dns.HandleFunc(".", handleDnsRequest) + udpDnsServer := &dns.Server{Addr: ":53", Net: "udp"} go func() { - err := dnsServer.ListenAndServe() + err := udpDnsServer.ListenAndServe() + if err != nil { + log.Fatal(err) + } + }() + tcpDnsServer := &dns.Server{Addr: ":53", Net: "tcp"} + go func() { + err := tcpDnsServer.ListenAndServe() if err != nil { log.Fatal(err) }