Initial version of migration to new event model

- Begin move away from global timer state.
- Made logging format more consistent
This commit is contained in:
Mathias Hall-Andersen
2018-05-05 02:20:52 +02:00
parent 168ef61a63
commit 6db41d5a26
8 changed files with 203 additions and 183 deletions

22
send.go
View File

@ -45,7 +45,7 @@ type QueueOutboundElement struct {
peer *Peer // related peer
}
func (peer *Peer) FlushNonceQueue() {
func (peer *Peer) flushNonceQueue() {
elems := len(peer.queue.nonce)
for i := 0; i < elems; i++ {
select {
@ -175,7 +175,7 @@ func (device *Device) RoutineReadFromTUN() {
// insert into nonce/pre-handshake queue
if peer.isRunning.Get() {
peer.timer.handshakeDeadline.Reset(RekeyAttemptTime)
peer.event.handshakePushDeadline.Fire()
addToOutboundQueue(peer.queue.nonce, elem)
elem = device.NewOutboundElement()
}
@ -196,11 +196,11 @@ func (peer *Peer) RoutineNonce() {
defer func() {
peer.routines.stopping.Done()
logDebug.Println(peer.String() + ": Routine: nonce worker - stopped")
logDebug.Println(peer, ": Routine: nonce worker - stopped")
}()
peer.routines.starting.Done()
logDebug.Println(peer.String() + ": Routine: nonce worker - started")
logDebug.Println(peer, ": Routine: nonce worker - started")
for {
NextPacket:
@ -226,14 +226,12 @@ func (peer *Peer) RoutineNonce() {
peer.signal.handshakeBegin.Send()
logDebug.Println(peer.String() + ": Awaiting key-pair")
logDebug.Println(peer, ": Awaiting key-pair")
select {
case <-peer.signal.newKeyPair.Wait():
logDebug.Println(peer.String() + ": Obtained awaited key-pair")
case <-peer.signal.flushNonceQueue.Wait():
logDebug.Println(peer.String() + ": Flushing nonce queue")
peer.FlushNonceQueue()
logDebug.Println(peer, ": Obtained awaited key-pair")
case <-peer.signal.flushNonceQueue:
goto NextPacket
case <-peer.routines.stop.Wait():
return
@ -352,10 +350,10 @@ func (peer *Peer) RoutineSequentialSender() {
defer func() {
peer.routines.stopping.Done()
logDebug.Println(peer.String() + ": Routine: sequential sender - stopped")
logDebug.Println(peer, ": Routine: sequential sender - stopped")
}()
logDebug.Println(peer.String() + ": Routine: sequential sender - started")
logDebug.Println(peer, ": Routine: sequential sender - started")
peer.routines.starting.Done()
@ -382,7 +380,7 @@ func (peer *Peer) RoutineSequentialSender() {
err := peer.SendBuffer(elem.packet)
device.PutMessageBuffer(elem.buffer)
if err != nil {
logDebug.Println("Failed to send authenticated packet to peer", peer.String())
logDebug.Println("Failed to send authenticated packet to peer", peer)
continue
}
atomic.AddUint64(&peer.stats.txBytes, length)