diff --git a/main.go b/main.go index f53a4cdf..906e6fd3 100644 --- a/main.go +++ b/main.go @@ -4,6 +4,7 @@ import ( "flag" "github.com/zettio/weavedns/server" "log" + "net" "os" ) @@ -36,7 +37,16 @@ func main() { } } - err := weavedns.StartServer(zone, ifaceName, dnsPort, httpPort, wait) + var iface *net.Interface = nil + if ifaceName != "" { + var err error + iface, err = weavedns.EnsureInterface(ifaceName, wait) + if err != nil { + log.Fatal(err) + } + } + + err := weavedns.StartServer(zone, iface, dnsPort, httpPort, wait) if err != nil { log.Fatal("Failed to start server", err) } diff --git a/server/if_utils.go b/server/if_utils.go index fff51d97..86e30eea 100644 --- a/server/if_utils.go +++ b/server/if_utils.go @@ -7,7 +7,7 @@ import ( "time" ) -func ensureInterface(ifaceName string, wait int) (iface *net.Interface, err error) { +func EnsureInterface(ifaceName string, wait int) (iface *net.Interface, err error) { iface, err = findInterface(ifaceName) if err == nil || wait == 0 { return diff --git a/server/server.go b/server/server.go index 2753ec14..b219c4b9 100644 --- a/server/server.go +++ b/server/server.go @@ -69,24 +69,14 @@ func notUsHandler() dns.HandlerFunc { } } -func StartServer(zone Zone, ifaceName string, dnsPort int, httpPort int, wait int) error { - +func StartServer(zone Zone, iface *net.Interface, dnsPort int, httpPort int, wait int) error { go ListenHttp(zone, httpPort) - var iface *net.Interface = nil - if ifaceName != "" { - var err error - iface, err = ensureInterface(ifaceName, wait) - if err != nil { - log.Fatal(err) - } - } - mdnsClient, err := NewMDNSClient() if err != nil { log.Fatal(err) } else { - log.Printf("Using mDNS on %s", ifaceName) + log.Printf("Using mDNS on %s", iface.Name) } err = mdnsClient.Start(iface) if err != nil {