func main() { members := make([]string, 0) raft.SetLogLevel(0) flag.Parse() if discover { ns, err := net.LookupNS(domain) if err != nil { log.Fatal(err) return } if len(ns) < 1 { log.Fatal("No NS records found for ", domain) return } for _, n := range ns { members = append(members, strings.TrimPrefix(n.Host, ".")) } } else if join != "" { members = strings.Split(join, ",") } s := server.NewServer(members, domain, ldns, lhttp, dataDir, rtimeout, wtimeout, secret) // Set up metrics if specified on the command line if metricsToStdErr { go metrics.Log(metrics.DefaultRegistry, 60e9, log.New(os.Stderr, "metrics: ", log.Lmicroseconds)) } if len(graphiteServer) > 1 { addr, err := net.ResolveTCPAddr("tcp", graphiteServer) if err != nil { go metrics.Graphite(metrics.DefaultRegistry, 10e9, "skydns", addr) } } if len(stathatUser) > 1 { go stathat.Stathat(metrics.DefaultRegistry, 10e9, stathatUser) } waiter, err := s.Start() if err != nil { log.Fatal(err) return } waiter.Wait() }
func main() { members := make([]string, 0) raft.SetLogLevel(0) flag.Parse() nameservers := strings.Split(nameserver, ",") // empty argument given if len(nameservers) == 1 && nameservers[0] == "" { nameservers = make([]string, 0) config, err := dns.ClientConfigFromFile("/etc/resolv.conf") if err == nil { for _, s := range config.Servers { nameservers = append(nameservers, net.JoinHostPort(s, config.Port)) } } else { log.Fatal(err) return } } if discover { ns, err := net.LookupNS(domain) if err != nil { log.Fatal(err) return } if len(ns) < 1 { log.Fatal("No NS records found for ", domain) return } for _, n := range ns { members = append(members, strings.TrimPrefix(n.Host, ".")) } } else if join != "" { members = strings.Split(join, ",") } s := server.NewServer(members, domain, ldns, lhttp, dataDir, rtimeout, wtimeout, secret, nameservers) stats.Collect() waiter, err := s.Start() if err != nil { log.Fatal(err) return } waiter.Wait() }