diff options
Diffstat (limited to 'device/send.go')
-rw-r--r-- | device/send.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/device/send.go b/device/send.go index c0bdba3..d202b62 100644 --- a/device/send.go +++ b/device/send.go @@ -107,6 +107,8 @@ func addToOutboundAndEncryptionQueues(outboundQueue chan *QueueOutboundElement, /* Queues a keepalive if no packets are queued for peer */ func (peer *Peer) SendKeepalive() bool { + peer.queue.RLock() + defer peer.queue.RUnlock() if len(peer.queue.nonce) != 0 || peer.queue.packetInNonceQueueIsAwaitingKey.Get() || !peer.isRunning.Get() { return false } @@ -310,6 +312,7 @@ func (device *Device) RoutineReadFromTUN() { // insert into nonce/pre-handshake queue + peer.queue.RLock() if peer.isRunning.Get() { if peer.queue.packetInNonceQueueIsAwaitingKey.Get() { peer.SendHandshakeInitiation(false) @@ -317,6 +320,7 @@ func (device *Device) RoutineReadFromTUN() { addToNonceQueue(peer.queue.nonce, elem, device) elem = nil } + peer.queue.RUnlock() } } |