diff --git a/controllers/dnsHttpController.go b/controllers/dnsHttpController.go index 59b5bf67..f5fd258b 100644 --- a/controllers/dnsHttpController.go +++ b/controllers/dnsHttpController.go @@ -173,6 +173,40 @@ func GetCustomDNS(network string) ([]models.DNSEntry, error){ return dns, err } +func SetDNS() error { + hostfile := txeh.Hosts{} + var corefilestring string + networks, err := functions.ListNetworks() + if err != nil { + return err + } + + for _, net := range networks { + corefilestring = corefilestring + net.NetID + " " + dns, err := GetDNS(net.NetID) + if err != nil { + return err + } + for _, entry := range dns { + hostfile.AddHost(entry.Address, entry.Name+"."+entry.Network) + if err != nil { + return err + } + } + } + if corefilestring == "" { + corefilestring = "example.com" + } + + err = hostfile.SaveAs("./config/dnsconfig/netmaker.hosts") + if err != nil { + return err + } + err = functions.SetCorefile(corefilestring) + + return err +} + func GetDNSEntryNum(domain string, network string) (int, error){ num := 0 @@ -406,45 +440,16 @@ func pushDNS(w http.ResponseWriter, r *http.Request) { // Set header w.Header().Set("Content-Type", "application/json") - err := WriteHosts() + err := SetDNS() if err != nil { returnErrorResponse(w, r, formatError(err, "internal")) return } + json.NewEncoder(w).Encode("DNS Pushed to CoreDNS") } - -func WriteHosts() error { - //hostfile, err := txeh.NewHostsDefault() - hostfile := txeh.Hosts{} - /* - if err != nil { - return err - } - */ - networks, err := functions.ListNetworks() - if err != nil { - return err - } - - for _, net := range networks { - dns, err := GetDNS(net.NetID) - if err != nil { - return err - } - for _, entry := range dns { - hostfile.AddHost(entry.Address, entry.Name+"."+entry.Network) - if err != nil { - return err - } - } - } - err = hostfile.SaveAs("./config/dnsconfig/netmaker.hosts") - return err -} - func ValidateDNSCreate(entry models.DNSEntry) error { v := validator.New() diff --git a/functions/local.go b/functions/local.go index ed18502a..bbc18eb1 100644 --- a/functions/local.go +++ b/functions/local.go @@ -17,7 +17,7 @@ func FileExists(f string) bool { return !info.IsDir() } -func ConfigureDNS() error { +func SetCorefile(domains string) error { dir, err := filepath.Abs(filepath.Dir(os.Args[0])) if err != nil { return err @@ -30,10 +30,9 @@ func ConfigureDNS() error { return err } - if !FileExists(dir + "/config/dnsconfig/Corefile") { - - corefile := `. { + corefile := domains + ` { hosts /root/dnsconfig/netmaker.hosts { + reload 15s fallthrough } forward . 8.8.8.8 8.8.4.4 @@ -48,6 +47,5 @@ func ConfigureDNS() error { log.Println("") return err } - } return err } diff --git a/main.go b/main.go index 98bd186d..38ecce02 100644 --- a/main.go +++ b/main.go @@ -77,7 +77,7 @@ func main() { } } if dnsmode == "on" { - err := functions.ConfigureDNS() + err := controller.SetDNS() if err != nil { fmt.Printf("Error setting DNS: %v", err) } @@ -119,14 +119,14 @@ func runGRPC(wg *sync.WaitGroup, installserver bool) { grpcport = ":" + os.Getenv("GRPC_PORT") } PortGRPC = grpcport - if os.Getenv("BACKEND_URL") == "" { + if os.Getenv("SERVER_DOMAIN") == "" { if config.Config.Server.Host == "" { ServerGRPC, _ = serverctl.GetPublicIP() } else { ServerGRPC = config.Config.Server.Host } } else { - ServerGRPC = os.Getenv("BACKEND_URL") + ServerGRPC = os.Getenv("SERVER_DOMAIN") } fmt.Println("GRPC Server set to: " + ServerGRPC) fmt.Println("GRPC Port set to: " + PortGRPC)