MCPcopy Create free account
hub / github.com/encodeous/nylon / Remove

Method Remove

polyamide/device/allowedips.go:259–278  ·  view source on GitHub ↗
(prefix netip.Prefix, peer *Peer)

Source from the content-addressed store, hash-verified

257}
258
259func (table *AllowedIPs) Remove(prefix netip.Prefix, peer *Peer) {
260 table.mutex.Lock()
261 defer table.mutex.Unlock()
262 var node *trieEntry
263 var exact bool
264
265 if prefix.Addr().Is6() {
266 ip := prefix.Addr().As16()
267 node, exact = table.IPv6.nodePlacement(ip[:], uint8(prefix.Bits()))
268 } else if prefix.Addr().Is4() {
269 ip := prefix.Addr().As4()
270 node, exact = table.IPv4.nodePlacement(ip[:], uint8(prefix.Bits()))
271 } else {
272 panic(errors.New("removing unknown address type"))
273 }
274 if !exact || node == nil || peer != node.peer {
275 return
276 }
277 node.remove()
278}
279
280func (table *AllowedIPs) RemoveByPeer(peer *Peer) {
281 table.mutex.Lock()

Callers 6

TestTrieIPv4Function · 0.95
TestTrieIPv6Function · 0.95
handlePeerLineMethod · 0.80
removeFromPeerEntriesMethod · 0.80
UAPIOpenFunction · 0.80
CleanupMethod · 0.80

Calls 3

removeMethod · 0.95
nodePlacementMethod · 0.80
AddrMethod · 0.45

Tested by 2

TestTrieIPv4Function · 0.76
TestTrieIPv6Function · 0.76