diff --git a/prog/weaver/main.go b/prog/weaver/main.go index 0ff8ffd9..2c1914d1 100644 --- a/prog/weaver/main.go +++ b/prog/weaver/main.go @@ -76,6 +76,7 @@ func main() { } mflag.BoolVar(&justVersion, []string{"#version", "-version"}, false, "print version and exit") + mflag.StringVar(&config.Host, []string{"-host"}, "", "router host") mflag.IntVar(&config.Port, []string{"#port", "-port"}, mesh.Port, "router port") mflag.IntVar(&protocolMinVersion, []string{"-min-protocol-version"}, mesh.ProtocolMinVersion, "minimum weave protocol version") mflag.StringVar(&ifaceName, []string{"#iface", "-iface"}, "", "name of interface to capture/inject from (disabled if blank)") @@ -143,7 +144,7 @@ func main() { networkConfig.PacketLogging = nopPacketLogging{} } - overlay, bridge := createOverlay(datapathName, ifaceName, config.Port, bufSzMB) + overlay, bridge := createOverlay(datapathName, ifaceName, config.Host, config.Port, bufSzMB) networkConfig.Bridge = bridge name := peerName(routerName, bridge.Interface()) @@ -272,7 +273,7 @@ func (nopPacketLogging) LogPacket(string, weave.PacketKey) { func (nopPacketLogging) LogForwardPacket(string, weave.ForwardPacketKey) { } -func createOverlay(datapathName string, ifaceName string, port int, bufSzMB int) (weave.NetworkOverlay, weave.Bridge) { +func createOverlay(datapathName string, ifaceName string, host string, port int, bufSzMB int) (weave.NetworkOverlay, weave.Bridge) { overlay := weave.NewOverlaySwitch() var bridge weave.Bridge switch { @@ -291,7 +292,7 @@ func createOverlay(datapathName string, ifaceName string, port int, bufSzMB int) default: bridge = weave.NullBridge{} } - sleeve := weave.NewSleeveOverlay(port) + sleeve := weave.NewSleeveOverlay(host, port) overlay.Add("sleeve", sleeve) overlay.SetCompatOverlay(sleeve) return overlay, bridge diff --git a/router/sleeve.go b/router/sleeve.go index 7b1227c7..29bbc910 100644 --- a/router/sleeve.go +++ b/router/sleeve.go @@ -62,6 +62,7 @@ const ( ) type SleeveOverlay struct { + host string localPort int // These fields are set in StartConsumingPackets, and not @@ -76,12 +77,12 @@ type SleeveOverlay struct { forwarders map[mesh.PeerName]*sleeveForwarder } -func NewSleeveOverlay(localPort int) NetworkOverlay { - return &SleeveOverlay{localPort: localPort} +func NewSleeveOverlay(host string, localPort int) NetworkOverlay { + return &SleeveOverlay{host: host, localPort: localPort} } func (sleeve *SleeveOverlay) StartConsumingPackets(localPeer *mesh.Peer, peers *mesh.Peers, consumer OverlayConsumer) error { - localAddr, err := net.ResolveUDPAddr("udp4", fmt.Sprint(":", sleeve.localPort)) + localAddr, err := net.ResolveUDPAddr("udp4", fmt.Sprint(sleeve.host, ":", sleeve.localPort)) if err != nil { return err } diff --git a/vendor/github.com/weaveworks/mesh b/vendor/github.com/weaveworks/mesh index e23da82f..9af1d5f8 160000 --- a/vendor/github.com/weaveworks/mesh +++ b/vendor/github.com/weaveworks/mesh @@ -1 +1 @@ -Subproject commit e23da82f319954cc0e146699b519f9aa0edc5b94 +Subproject commit 9af1d5f8b1dd29cc2c70fb7cbdd7d32b6465c34d