refactor: further reduce dependency on router

This commit is contained in:
Matthias Radestock committed 2014-12-24 20:43:35 +00:00
1 parent 2d4baa8dba
commit da8e9fd0eb
2 files changed
+6 -6

No files matched your search

+1 -1
View File
@@ -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()
}
+5 -5
View File
@@ -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() {