Factor out the wait-for-interface code
This commit is contained in:
1 parent
8ce6c4aba3
commit
27beebf5d5
3 files changed
+9
-36
No files matched your search
@@ -1,4 +1,4 @@
|
||||
package nameserver
|
||||
package net
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
@@ -10,14 +10,10 @@ func EnsureInterface(ifaceName string, wait int) (iface *net.Interface, err erro
|
||||
if iface, err = findInterface(ifaceName); err == nil || wait == 0 {
|
||||
return
|
||||
}
|
||||
Info.Println("Waiting for interface", ifaceName, "to come up")
|
||||
for ; err != nil && wait > 0; wait -= 1 {
|
||||
time.Sleep(1 * time.Second)
|
||||
iface, err = findInterface(ifaceName)
|
||||
}
|
||||
if err == nil {
|
||||
Info.Println("Interface", ifaceName, "is up")
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
+5
-1
@@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"flag"
|
||||
weavedns "github.com/zettio/weave/nameserver"
|
||||
weavenet "github.com/zettio/weave/net"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"os"
|
||||
@@ -46,9 +47,12 @@ func main() {
|
||||
var iface *net.Interface = nil
|
||||
if ifaceName != "" {
|
||||
var err error
|
||||
iface, err = weavedns.EnsureInterface(ifaceName, wait)
|
||||
weavedns.Info.Println("Waiting for interface", ifaceName, "to come up")
|
||||
iface, err = weavenet.EnsureInterface(ifaceName, wait)
|
||||
if err != nil {
|
||||
weavedns.Error.Fatal(err)
|
||||
} else {
|
||||
weavedns.Info.Println("Interface", ifaceName, "is up")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-30
@@ -6,6 +6,7 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"github.com/davecheney/profile"
|
||||
weavenet "github.com/zettio/weave/net"
|
||||
weave "github.com/zettio/weave/router"
|
||||
"io"
|
||||
"log"
|
||||
@@ -15,36 +16,8 @@ import (
|
||||
"os/signal"
|
||||
"runtime"
|
||||
"syscall"
|
||||
"time"
|
||||
)
|
||||
|
||||
func ensureInterface(ifaceName string, wait int) (iface *net.Interface, err error) {
|
||||
iface, err = findInterface(ifaceName)
|
||||
if err == nil || wait == 0 {
|
||||
return
|
||||
}
|
||||
log.Println("Waiting for interface", ifaceName, "to come up")
|
||||
for ; err != nil && wait > 0; wait -= 1 {
|
||||
time.Sleep(1 * time.Second)
|
||||
iface, err = findInterface(ifaceName)
|
||||
}
|
||||
if err == nil {
|
||||
log.Println("Interface", ifaceName, "is up")
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func findInterface(ifaceName string) (iface *net.Interface, err error) {
|
||||
iface, err = net.InterfaceByName(ifaceName)
|
||||
if err != nil {
|
||||
return iface, fmt.Errorf("Unable to find interface %s", ifaceName)
|
||||
}
|
||||
if 0 == (net.FlagUp & iface.Flags) {
|
||||
return iface, fmt.Errorf("Interface %s is not up", ifaceName)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
||||
log.SetPrefix(weave.Protocol + " ")
|
||||
@@ -86,7 +59,7 @@ func main() {
|
||||
fmt.Println("Missing required parameter 'iface'")
|
||||
os.Exit(1)
|
||||
}
|
||||
iface, err := ensureInterface(ifaceName, wait)
|
||||
iface, err := weavenet.EnsureInterface(ifaceName, wait)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
@@ -141,7 +114,7 @@ func handleHttp(router *weave.Router) {
|
||||
http.HandleFunc("/status", func(w http.ResponseWriter, r *http.Request) {
|
||||
io.WriteString(w, router.Status())
|
||||
})
|
||||
http.HandleFunc("/connect", func (w http.ResponseWriter, r *http.Request) {
|
||||
http.HandleFunc("/connect", func(w http.ResponseWriter, r *http.Request) {
|
||||
peer := r.FormValue("peer")
|
||||
if addr, err := net.ResolveTCPAddr("tcp4", weave.NormalisePeerAddr(peer)); err == nil {
|
||||
router.ConnectionMaker.InitiateConnection(addr.String())
|
||||
|
||||
Reference in new issue
Block a user