diff options
-rw-r--r-- | peer.go | 3 | ||||
-rw-r--r-- | timers.go | 6 | ||||
-rw-r--r-- | uapi.go | 10 |
3 files changed, 8 insertions, 11 deletions
@@ -13,13 +13,14 @@ const ( ) type Peer struct { - persistentKeepaliveInterval uint64 isRunning AtomicBool mutex sync.RWMutex keyPairs KeyPairs handshake Handshake device *Device endpoint Endpoint + persistentKeepaliveInterval uint16 + _ uint32 // padding for alignment stats struct { txBytes uint64 // bytes send to peer (endpoint) @@ -105,7 +105,7 @@ func (peer *Peer) TimerAnyAuthenticatedPacketReceived() { * Push persistent keep-alive into the future */ func (peer *Peer) TimerAnyAuthenticatedPacketTraversal() { - interval := atomic.LoadUint64(&peer.persistentKeepaliveInterval) + interval := peer.persistentKeepaliveInterval if interval > 0 { duration := time.Duration(interval) * time.Second peer.timer.keepalivePersistent.Reset(duration) @@ -199,7 +199,7 @@ func (peer *Peer) RoutineTimerHandler() { peer.timer.handshakeNew.Stop() peer.timer.zeroAllKeys.Stop() - interval := atomic.LoadUint64(&peer.persistentKeepaliveInterval) + interval := peer.persistentKeepaliveInterval if interval > 0 { duration := time.Duration(interval) * time.Second peer.timer.keepalivePersistent.Reset(duration) @@ -225,7 +225,7 @@ func (peer *Peer) RoutineTimerHandler() { case <-peer.timer.keepalivePersistent.Wait(): - interval := atomic.LoadUint64(&peer.persistentKeepaliveInterval) + interval := peer.persistentKeepaliveInterval if interval > 0 { logDebug.Println(peer.String(), ": Send keep-alive (persistent)") peer.timer.keepalivePassive.Stop() @@ -84,9 +84,7 @@ func ipcGetOperation(device *Device, socket *bufio.ReadWriter) *IPCError { send(fmt.Sprintf("last_handshake_time_nsec=%d", nano)) send(fmt.Sprintf("tx_bytes=%d", peer.stats.txBytes)) send(fmt.Sprintf("rx_bytes=%d", peer.stats.rxBytes)) - send(fmt.Sprintf("persistent_keepalive_interval=%d", - atomic.LoadUint64(&peer.persistentKeepaliveInterval), - )) + send(fmt.Sprintf("persistent_keepalive_interval=%d", peer.persistentKeepaliveInterval)) for _, ip := range device.routing.table.AllowedIPs(peer) { send("allowed_ip=" + ip.String()) @@ -322,10 +320,8 @@ func ipcSetOperation(device *Device, socket *bufio.ReadWriter) *IPCError { return &IPCError{Code: ipcErrorInvalid} } - old := atomic.SwapUint64( - &peer.persistentKeepaliveInterval, - secs, - ) + old := peer.persistentKeepaliveInterval + peer.persistentKeepaliveInterval = uint16(secs) // send immediate keep-alive |