diff --git a/nameserver/server.go b/nameserver/server.go index dc303b40..c81c064c 100644 --- a/nameserver/server.go +++ b/nameserver/server.go @@ -28,13 +28,8 @@ type DNSServer struct { tcpPort int } -// Creates a new DNS server -func NewDNSServer(zone Zone, iface *net.Interface, udpPort int, tcpPort int) (*DNSServer, error) { - config, err := dns.ClientConfigFromFile("/etc/resolv.conf") - if err != nil { - return nil, err - } - +// Creates a new DNS server with a given config +func NewDNSServerWithConfig(config *dns.ClientConfig, zone Zone, iface *net.Interface, udpPort int, tcpPort int) (*DNSServer, error) { return &DNSServer{ config: config, zone: zone, @@ -44,6 +39,16 @@ func NewDNSServer(zone Zone, iface *net.Interface, udpPort int, tcpPort int) (*D }, nil } +// Creates a new DNS server +func NewDNSServer(zone Zone, iface *net.Interface, udpPort int, tcpPort int) (*DNSServer, error) { + config, err := dns.ClientConfigFromFile("/etc/resolv.conf") + if err != nil { + return nil, err + } + + return NewDNSServerWithConfig(config, zone, iface, udpPort, tcpPort) +} + // Start the DNS server func (s *DNSServer) Start() error { mdnsClient, err := NewMDNSClient() diff --git a/nameserver/server_test.go b/nameserver/server_test.go index c42fc4d7..eeb98016 100644 --- a/nameserver/server_test.go +++ b/nameserver/server_test.go @@ -41,7 +41,9 @@ func TestDNSServer(t *testing.T) { wt.AssertNoErr(t, err) config := &dns.ClientConfig{Servers: []string{"127.0.0.1"}, Port: fallbackPort} - go startServerWithConfig(config, zone, nil, port, 0) + srv, err := NewDNSServerWithConfig(config, zone, nil, port, port) + wt.AssertNoErr(t, err) + go srv.Start() time.Sleep(100 * time.Millisecond) // Allow sever goroutine to start c := new(dns.Client)