From da8e9fd0eb78c2e3c942a36e5505d73f78576990 Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Wed, 24 Dec 2014 20:43:35 +0000 Subject: [PATCH] refactor: further reduce dependency on router --- router/peer.go | 2 +- router/peers.go | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/router/peer.go b/router/peer.go index 1298b475..079d76c7 100644 --- a/router/peer.go +++ b/router/peer.go @@ -367,7 +367,7 @@ func (peer *Peer) handleDeleteConnection(conn *LocalConnection) { } // Must do garbage collection first to ensure we don't send out an // update with unreachable peers (can cause looping) - peer.Router.Peers.GarbageCollect(peer.Router) + peer.Router.Peers.GarbageCollect(peer.Router.Ourself, peer.Router.Macs) if broadcast { peer.broadcastPeerUpdate() } diff --git a/router/peers.go b/router/peers.go index 06666f8e..12c889a3 100644 --- a/router/peers.go +++ b/router/peers.go @@ -68,7 +68,7 @@ func (peers *Peers) ApplyUpdate(update []byte, router *Router) ([]byte, error) { } // Now apply the updates - newUpdate := peers.applyUpdate(decodedUpdate, decodedConns, router) + newUpdate := peers.applyUpdate(decodedUpdate, decodedConns, router.Ourself) for _, peerRemoved := range peers.garbageCollect(router.Ourself, router.Macs) { delete(newUpdate, peerRemoved.Name) @@ -99,10 +99,10 @@ func EncodePeers(peers ...*Peer) []byte { return buf.Bytes() } -func (peers *Peers) GarbageCollect(router *Router) []*Peer { +func (peers *Peers) GarbageCollect(ourself *Peer, macs *MacCache) []*Peer { peers.Lock() defer peers.Unlock() - return peers.garbageCollect(router.Ourself, router.Macs) + return peers.garbageCollect(ourself, macs) } func (peers *Peers) String() string { @@ -203,7 +203,7 @@ func (peers *Peers) decodeUpdate(update []byte, router *Router) (newPeers map[Pe return } -func (peers *Peers) applyUpdate(decodedUpdate []*Peer, decodedConns [][]byte, router *Router) map[PeerName]*Peer { +func (peers *Peers) applyUpdate(decodedUpdate []*Peer, decodedConns [][]byte, ourself *Peer) map[PeerName]*Peer { newUpdate := make(map[PeerName]*Peer) for idx, newPeer := range decodedUpdate { connsBuf := decodedConns[idx] @@ -220,7 +220,7 @@ func (peers *Peers) applyUpdate(decodedUpdate []*Peer, decodedConns [][]byte, ro // change. newUpdate[name] = peer continue - } else if peer == router.Ourself { + } else if peer == ourself { // nobody but us updates us continue } else if peer.Version() == newPeer.Version() {