diff --git a/nameserver/server.go b/nameserver/server.go index fd15bb3d..984e00fb 100644 --- a/nameserver/server.go +++ b/nameserver/server.go @@ -30,22 +30,13 @@ type DNSServer struct { } // Creates a new DNS server with a given config -func NewDNSServerWithConfig(config *dns.ClientConfig, zone Zone, iface *net.Interface, port int) (*DNSServer, error) { +func NewDNSServer(config *dns.ClientConfig, zone Zone, iface *net.Interface, port int) *DNSServer { return &DNSServer{ config: config, zone: zone, iface: iface, port: port, - }, nil -} - -// Creates a new DNS server -func NewDNSServer(zone Zone, iface *net.Interface, port int) (*DNSServer, error) { - config, err := dns.ClientConfigFromFile("/etc/resolv.conf") - if err != nil { - return nil, err } - return NewDNSServerWithConfig(config, zone, iface, port) } // Start the DNS server diff --git a/nameserver/server_test.go b/nameserver/server_test.go index f117b3ff..0f54bc63 100644 --- a/nameserver/server_test.go +++ b/nameserver/server_test.go @@ -41,10 +41,10 @@ func TestUDPDNSServer(t *testing.T) { wt.AssertNoErr(t, err) config := &dns.ClientConfig{Servers: []string{"127.0.0.1"}, Port: fallbackPort} - srv, err := NewDNSServerWithConfig(config, zone, nil, port) - wt.AssertNoErr(t, err) + srv := NewDNSServer(config, zone, nil, port) defer srv.Stop() - go srv.Start() + err = srv.Start() + wt.AssertNoErr(t, err) time.Sleep(100 * time.Millisecond) // Allow sever goroutine to start c := new(dns.Client) @@ -147,10 +147,10 @@ func TestTCPDNSServer(t *testing.T) { wt.AssertNoErr(t, err) config := &dns.ClientConfig{Servers: []string{"127.0.0.1"}, Port: fallbackPort} - srv, err := NewDNSServerWithConfig(config, zone, nil, port) - wt.AssertNoErr(t, err) + srv := NewDNSServer(config, zone, nil, port) defer srv.Stop() - go srv.Start() + err = srv.Start() + wt.AssertNoErr(t, err) time.Sleep(100 * time.Millisecond) // Allow sever goroutine to start // Create a regular UDP client and a TCP client diff --git a/weavedns/main.go b/weavedns/main.go index ab9f5686..aa84511c 100644 --- a/weavedns/main.go +++ b/weavedns/main.go @@ -9,6 +9,7 @@ import ( "io" "net" "os" + "github.com/miekg/dns" ) var version = "(unreleased version)" @@ -63,13 +64,14 @@ func main() { } } - go weavedns.ListenHttp(weavedns.LOCAL_DOMAIN, zone, httpPort) - srv, err := weavedns.NewDNSServer(zone, iface, dnsPort) + config, err := dns.ClientConfigFromFile("/etc/resolv.conf") if err != nil { - Error.Fatal("Failed to start server", err) + Error.Fatal("Failed obtain DNS client configuration", err) } - srv.Start() + go weavedns.ListenHttp(weavedns.LOCAL_DOMAIN, zone, httpPort) + srv := weavedns.NewDNSServer(config, zone, iface, dnsPort) + err := srv.Start() if err != nil { Error.Fatal("Failed to start server", err) }