log mac expiry
for symmetry with mac discovery and w/o polluting the mac_cache code with logging
This commit is contained in:
1 parent
a7e44b44dc
commit
9706934d89
2 files changed
+10
-4
No files matched your search
+6
-3
@@ -18,12 +18,14 @@ type MacCache struct {
|
||||
table map[uint64]*MacCacheEntry
|
||||
maxAge time.Duration
|
||||
expiryTimer *time.Timer
|
||||
onExpiry func(net.HardwareAddr, *Peer)
|
||||
}
|
||||
|
||||
func NewMacCache(maxAge time.Duration) *MacCache {
|
||||
func NewMacCache(maxAge time.Duration, onExpiry func(net.HardwareAddr, *Peer)) *MacCache {
|
||||
res := &MacCache{
|
||||
table: make(map[uint64]*MacCacheEntry),
|
||||
maxAge: maxAge}
|
||||
table: make(map[uint64]*MacCacheEntry),
|
||||
maxAge: maxAge,
|
||||
onExpiry: onExpiry}
|
||||
res.setExpiryTimer()
|
||||
return res
|
||||
}
|
||||
@@ -102,6 +104,7 @@ func (cache *MacCache) expire() {
|
||||
for key, entry := range cache.table {
|
||||
if now.After(entry.lastSeen.Add(cache.maxAge)) {
|
||||
delete(cache.table, key)
|
||||
cache.onExpiry(intmac(key), entry.peer)
|
||||
}
|
||||
}
|
||||
cache.setExpiryTimer()
|
||||
|
||||
Reference in new issue
Block a user