Skip to content
This repository has been archived by the owner on Jun 20, 2024. It is now read-only.

Commit

Permalink
refactor: make Overlay setting more explicit
Browse files Browse the repository at this point in the history
  • Loading branch information
rade committed Nov 8, 2015
1 parent 59e11e4 commit b7e7c11
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 11 deletions.
3 changes: 1 addition & 2 deletions prog/weaver/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,6 @@ func main() {
sleeve := weave.NewSleeveOverlay(config.Port)
overlays.Add("sleeve", sleeve)
overlays.SetCompatOverlay(sleeve)
config.Overlay = overlays

if routerName == "" {
if iface == nil {
Expand Down Expand Up @@ -235,7 +234,7 @@ func main() {
config.PacketLogging = nopPacketLogging{}
}

router := weave.NewRouter(config, name, nickName)
router := weave.NewRouter(config, name, nickName, overlays)
Log.Println("Our name is", router.Ourself)

var dockerCli *docker.Client
Expand Down
2 changes: 1 addition & 1 deletion router/gossip_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ type mockChannelConnection struct {

func NewTestRouter(name string) *Router {
peerName, _ := PeerNameFromString(name)
router := NewRouter(Config{}, peerName, "nick")
router := NewRouter(Config{}, peerName, "nick", nil)
router.Start()
return router
}
Expand Down
15 changes: 7 additions & 8 deletions router/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ type Config struct {
BufSz int
PacketLogging PacketLogging
Bridge Bridge
Overlay Overlay
}

type PacketLogging interface {
Expand All @@ -59,6 +58,7 @@ type PacketLogging interface {

type Router struct {
Config
Overlay Overlay
Ourself *LocalPeer
Macs *MacCache
Peers *Peers
Expand All @@ -71,17 +71,18 @@ type Router struct {
acceptLimiter *TokenBucket
}

func NewRouter(config Config, name PeerName, nickName string) *Router {
func NewRouter(config Config, name PeerName, nickName string, overlay Overlay) *Router {
router := &Router{Config: config, gossipChannels: make(GossipChannels)}

if router.Bridge == nil {
router.Bridge = NullBridge{}
}

if router.Overlay == nil {
router.Overlay = NullOverlay{}
if overlay == nil {
overlay = NullOverlay{}
}

router.Overlay = overlay
router.Ourself = NewLocalPeer(name, nickName, router)
router.Macs = NewMacCache(macMaxAge,
func(mac net.HardwareAddr, peer *Peer) {
Expand All @@ -92,11 +93,9 @@ func NewRouter(config Config, name PeerName, nickName string) *Router {
router.Macs.Delete(peer)
log.Println("Removed unreachable peer", peer)
})
router.Peers.OnInvalidateShortIDs(router.Overlay.InvalidateShortIDs)

router.Peers.OnInvalidateShortIDs(overlay.InvalidateShortIDs)
router.Routes = NewRoutes(router.Ourself, router.Peers)
router.Routes.OnChange(router.Overlay.InvalidateRoutes)

router.Routes.OnChange(overlay.InvalidateRoutes)
router.ConnectionMaker = NewConnectionMaker(router.Ourself, router.Peers, router.Port, router.PeerDiscovery)
router.TopologyGossip = router.NewGossip("topology", router)
router.acceptLimiter = NewTokenBucket(acceptMaxTokens, acceptTokenDelay)
Expand Down

0 comments on commit b7e7c11

Please sign in to comment.