Inital implementation of trie

This commit is contained in:
Mathias Hall-Andersen
2017-06-01 21:31:30 +02:00
parent 8ce921987f
commit ec3d656beb
8 changed files with 325 additions and 239 deletions

View File

@@ -5,10 +5,39 @@ import (
)
type Device struct {
mutex sync.RWMutex
peers map[NoisePublicKey]*Peer
privateKey NoisePrivateKey
publicKey NoisePublicKey
fwMark uint32
listenPort uint16
mutex sync.RWMutex
peers map[NoisePublicKey]*Peer
privateKey NoisePrivateKey
publicKey NoisePublicKey
fwMark uint32
listenPort uint16
routingTable RoutingTable
}
func (dev *Device) RemovePeer(key NoisePublicKey) {
dev.mutex.Lock()
defer dev.mutex.Unlock()
peer, ok := dev.peers[key]
if !ok {
return
}
peer.mutex.Lock()
dev.routingTable.RemovePeer(peer)
delete(dev.peers, key)
}
func (dev *Device) RemoveAllAllowedIps(peer *Peer) {
}
func (dev *Device) RemoveAllPeers() {
dev.mutex.Lock()
defer dev.mutex.Unlock()
for key, peer := range dev.peers {
peer.mutex.Lock()
dev.routingTable.RemovePeer(peer)
delete(dev.peers, key)
peer.mutex.Unlock()
}
}