aboutsummaryrefslogtreecommitdiffstats
path: root/src/peer.go
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/peer.go19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/peer.go b/src/peer.go
index c8dc5c0..408c605 100644
--- a/src/peer.go
+++ b/src/peer.go
@@ -1,7 +1,9 @@
package main
import (
+ "encoding/base64"
"errors"
+ "fmt"
"net"
"sync"
"time"
@@ -38,9 +40,9 @@ type Peer struct {
/* Both keep-alive timers acts as one (see timers.go)
* They are kept seperate to simplify the implementation.
*/
- keepalivePersistent *time.Timer // set for persistent keepalives
- keepaliveAcknowledgement *time.Timer // set upon recieving messages
- zeroAllKeys *time.Timer // zero all key material after RejectAfterTime*3
+ keepalivePersistent *time.Timer // set for persistent keepalives
+ keepalivePassive *time.Timer // set upon recieving messages
+ zeroAllKeys *time.Timer // zero all key material after RejectAfterTime*3
}
queue struct {
nonce chan *QueueOutboundElement // nonce / pre-handshake queue
@@ -63,8 +65,8 @@ func (device *Device) NewPeer(pk NoisePublicKey) *Peer {
peer.mac.Init(pk)
peer.device = device
+ peer.timer.keepalivePassive = NewStoppedTimer()
peer.timer.keepalivePersistent = NewStoppedTimer()
- peer.timer.keepaliveAcknowledgement = NewStoppedTimer()
peer.timer.zeroAllKeys = NewStoppedTimer()
peer.flags.keepaliveWaiting = AtomicFalse
@@ -115,6 +117,15 @@ func (device *Device) NewPeer(pk NoisePublicKey) *Peer {
return peer
}
+func (peer *Peer) String() string {
+ return fmt.Sprintf(
+ "peer(%d %s %s)",
+ peer.id,
+ peer.endpoint.String(),
+ base64.StdEncoding.EncodeToString(peer.handshake.remoteStatic[:]),
+ )
+}
+
func (peer *Peer) Close() {
close(peer.signal.stop)
}