From 3371f8dac6fe6bbd7522a8316b50f6473012e302 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Tue, 11 Jun 2019 18:13:52 +0200 Subject: device: update transfer counters correctly The rule is to always update them to the full packet size minus UDP/IP encapsulation for all authenticated packet types. --- device/peer.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'device/peer.go') diff --git a/device/peer.go b/device/peer.go index 815dff4..4e7f2da 100644 --- a/device/peer.go +++ b/device/peer.go @@ -10,6 +10,7 @@ import ( "errors" "fmt" "sync" + "sync/atomic" "time" ) @@ -140,7 +141,11 @@ func (peer *Peer) SendBuffer(buffer []byte) error { return errors.New("no known endpoint for peer") } - return peer.device.net.bind.Send(buffer, peer.endpoint) + err := peer.device.net.bind.Send(buffer, peer.endpoint) + if err == nil { + atomic.AddUint64(&peer.stats.txBytes, uint64(len(buffer))) + } + return err } func (peer *Peer) String() string { -- cgit v1.2.3