From 4cb306e71453172717599fecb642c7160640cf3d Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Fri, 23 Jan 2015 16:24:41 +0000 Subject: [PATCH] refactor: eliminate dependency of Peers on MacCache --- router/peers.go | 7 ++----- router/router.go | 5 +++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/router/peers.go b/router/peers.go index 35cf8bea..340701bd 100644 --- a/router/peers.go +++ b/router/peers.go @@ -11,7 +11,6 @@ import ( type Peers struct { sync.RWMutex ourself *Peer - macs *MacCache table map[PeerName]*Peer onGC func(*Peer) } @@ -23,10 +22,9 @@ type NameCollisionError struct { Name PeerName } -func NewPeers(ourself *Peer, macs *MacCache, onGC func(*Peer)) *Peers { +func NewPeers(ourself *Peer, onGC func(*Peer)) *Peers { return &Peers{ ourself: ourself, - macs: macs, table: make(map[PeerName]*Peer), onGC: onGC} } @@ -156,9 +154,8 @@ func (peers *Peers) garbageCollect() []*Peer { for name, peer := range peers.table { found, _ := peers.ourself.Routes(peer, false) if !found && !peer.IsLocallyReferenced() { - peers.onGC(peer) delete(peers.table, name) - peers.macs.Delete(peer) + peers.onGC(peer) removed = append(removed, peer) } } diff --git a/router/router.go b/router/router.go index 65865578..8ed59c28 100644 --- a/router/router.go +++ b/router/router.go @@ -57,11 +57,12 @@ func NewRouter(iface *net.Interface, name PeerName, password []byte, connLimit i log.Println("Expired MAC", mac, "at", peer.Name) } onPeerGC := func(peer *Peer) { - log.Println("Removing unreachable", peer) + router.Macs.Delete(peer) + log.Println("Removed unreachable", peer) } router.Ourself = NewLocalPeer(name, router) router.Macs = NewMacCache(macMaxAge, onMacExpiry) - router.Peers = NewPeers(router.Ourself.Peer, router.Macs, onPeerGC) + router.Peers = NewPeers(router.Ourself.Peer, onPeerGC) router.Peers.FetchWithDefault(router.Ourself.Peer) router.Routes = NewRoutes(router.Ourself.Peer, router.Peers) router.ConnectionMaker = NewConnectionMaker(router.Ourself, router.Peers)