(peer *Peer, cb func(prefix netip.Prefix) bool)
| 211 | } |
| 212 | |
| 213 | func (table *AllowedIPs) EntriesForPeer(peer *Peer, cb func(prefix netip.Prefix) bool) { |
| 214 | table.mutex.RLock() |
| 215 | defer table.mutex.RUnlock() |
| 216 | |
| 217 | for elem := peer.trieEntries.Front(); elem != nil; elem = elem.Next() { |
| 218 | node := elem.Value.(*trieEntry) |
| 219 | a, _ := netip.AddrFromSlice(node.bits) |
| 220 | if !cb(netip.PrefixFrom(a, int(node.cidr))) { |
| 221 | return |
| 222 | } |
| 223 | } |
| 224 | } |
| 225 | |
| 226 | func (node *trieEntry) remove() { |
| 227 | node.removeFromPeerEntries() |