Sfoglia il codice sorgente

Remove double goroutine

(thanks to Uriel on #go-nuts)
Ask Bjørn Hansen 13 anni fa
parent
commit
3d4020cfbd
2 ha cambiato i file con 6 aggiunte e 8 eliminazioni
  1. 1 1
      geodns.go
  2. 5 7
      serve.go

+ 1 - 1
geodns.go

@@ -24,7 +24,7 @@ func main() {
 	Zones := make(Zones)
 	Zones := make(Zones)
 
 
 	go configReader(dirName, Zones)
 	go configReader(dirName, Zones)
-	go startServer(&Zones)
+	go listenAndServe(&Zones)
 
 
 	if *flagrun {
 	if *flagrun {
 		sig := make(chan os.Signal)
 		sig := make(chan os.Signal)

+ 5 - 7
serve.go

@@ -96,13 +96,11 @@ func setupServerFunc(Zone *Zone) func(dns.ResponseWriter, *dns.Msg) {
 	}
 	}
 }
 }
 
 
-func startServer(Zones *Zones) {
+func listenAndServe(Zones *Zones) {
 
 
 	// Only listen on UDP for now
 	// Only listen on UDP for now
-	go func() {
-		log.Printf("Opening on %s %s", *listen, "udp")
-		if err := dns.ListenAndServe(*listen, "udp", nil); err != nil {
-			log.Fatalf("geodns: failed to setup %s %s", *listen, "udp")
-		}
-	}()
+	log.Printf("Opening on %s %s", *listen, "udp")
+	if err := dns.ListenAndServe(*listen, "udp", nil); err != nil {
+		log.Fatalf("geodns: failed to setup %s %s", *listen, "udp")
+	}
 }
 }