Wait for interface in main

This commit is contained in:
Bryan Boreham committed 2014-10-20 17:26:11 +01:00
1 parent b8a06521c0
commit bce06d2e9b
3 files changed
+14 -14

No files matched your search

+11 -1
View File
@@ -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)
}
+1 -1
View File
@@ -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
+2 -12
View File
@@ -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 {