Added ratelimiting of handshake messages

This commit is contained in:
Mathias Hall-Andersen
2017-07-11 18:48:29 +02:00
parent 9c4acb9f35
commit c273078376
5 changed files with 248 additions and 5 deletions

View File

@@ -31,9 +31,10 @@ type Device struct {
signal struct {
stop chan struct{}
}
underLoad int32 // used as an atomic bool
peers map[NoisePublicKey]*Peer
mac MACStateDevice
underLoad int32 // used as an atomic bool
ratelimiter Ratelimiter
peers map[NoisePublicKey]*Peer
mac MACStateDevice
}
func (device *Device) SetPrivateKey(sk NoisePrivateKey) {
@@ -66,6 +67,7 @@ func NewDevice(tun TUNDevice, logLevel int) *Device {
device.mtu = tun.MTU()
device.peers = make(map[NoisePublicKey]*Peer)
device.indices.Init()
device.ratelimiter.Init()
device.routingTable.Reset()
// listen
@@ -99,6 +101,7 @@ func NewDevice(tun TUNDevice, logLevel int) *Device {
go device.RoutineReadFromTUN(tun)
go device.RoutineReceiveIncomming()
go device.RoutineWriteToTUN(tun)
go device.ratelimiter.RoutineGarbageCollector(device.signal.stop)
return device
}