mirror of
https://github.com/cwinfo/yggdrasil-go.git
synced 2024-12-23 05:15:39 +00:00
Enforce maximum CKR routing cache size
This commit is contained in:
parent
f09adc2192
commit
65e34bbbab
@ -241,6 +241,16 @@ func (c *cryptokey) getPublicKeyForAddress(addr address, addrlen int) (boxPubKey
|
||||
for _, route := range *routingtable {
|
||||
// Does this subnet match the given IP?
|
||||
if route.subnet.Contains(ip) {
|
||||
// Check if the routing cache is above a certain size, if it is evict
|
||||
// a random entry so we can make room for this one. We take advantage
|
||||
// of the fact that the iteration order is random here
|
||||
if len(*routingcache) > 1024 {
|
||||
for k := range *routingcache {
|
||||
delete(*routingcache, k)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// Cache the entry for future packets to get a faster lookup
|
||||
(*routingcache)[addr] = route
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user