From e51f89268c0b03ffc8ab3f5d176d15b09a7f0b60 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Thu, 18 Sep 2014 05:50:13 +0100 Subject: [PATCH] Stop waiting for interface after 5 seconds --- weaver/main.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/weaver/main.go b/weaver/main.go index 63bb60d1..a16aabc9 100644 --- a/weaver/main.go +++ b/weaver/main.go @@ -24,11 +24,15 @@ func ensureInterface(ifaceName string, wait bool) (iface *net.Interface, err err return } log.Println("Waiting for interface", ifaceName, "to come up") - for err != nil { + count := 0 + for err != nil && count < 5 { + count += 1 time.Sleep(1 * time.Second) iface, err = findInterface(ifaceName) } - log.Println("Interface", ifaceName, "is up") + if err == nil { + log.Println("Interface", ifaceName, "is up") + } return } @@ -47,6 +51,7 @@ func main() { log.SetPrefix(weave.Protocol + " ") log.SetFlags(log.Ldate | log.Ltime | log.Lmicroseconds) + log.Println(os.Args) procs := runtime.NumCPU() // packet sniffing can block an OS thread, so we need one thread @@ -87,6 +92,9 @@ func main() { if err != nil { log.Fatal(err) } + if wait && iface == nil { + os.Exit(1) + } if connLimit < 0 { connLimit = 0