move logging out of peer_cache

This commit is contained in:
Matthias Radestock committed 2014-09-04 00:02:08 +01:00
1 parent 9706934d89
commit b19abe4eab
2 files changed
+8 -5

No files matched your search

+4 -4
View File
@@ -5,17 +5,17 @@ import (
"encoding/gob"
"fmt"
"io"
"log"
"sync"
)
type PeerCache struct {
sync.RWMutex
table map[PeerName]*Peer
onGC func(*Peer)
}
func NewPeerCache() *PeerCache {
return &PeerCache{table: make(map[PeerName]*Peer)}
func NewPeerCache(onGC func(*Peer)) *PeerCache {
return &PeerCache{table: make(map[PeerName]*Peer), onGC: onGC}
}
func (cache *PeerCache) FetchWithDefault(peer *Peer) *Peer {
@@ -129,7 +129,7 @@ func (cache *PeerCache) garbageCollect(ourself *Peer) []*Peer {
for name, peer := range cache.table {
found, _ := ourself.HasPathTo(peer, false)
if !found && !peer.IsLocallyReferenced() {
log.Println("Removing unreachable", peer)
cache.onGC(peer)
delete(cache.table, name)
ourself.Router.Macs.Delete(peer)
removed = append(removed, peer)
+4 -1
View File
@@ -18,10 +18,13 @@ func NewRouter(iface *net.Interface, name PeerName, password []byte, connLimit i
onMacExpiry := func(mac net.HardwareAddr, peer *Peer) {
log.Println("Expired MAC", mac, "at", peer.Name)
}
onPeerGC := func(peer *Peer) {
log.Println("Removing unreachable", peer)
}
router := &Router{
Iface: iface,
Macs: NewMacCache(macMaxAge, onMacExpiry),
Peers: NewPeerCache(),
Peers: NewPeerCache(onPeerGC),
ConnLimit: connLimit,
BufSz: bufSz,
LogFrame: logFrame}