continue
}
stream.stats.pkts++
- stream.stats.bytes += uint64(n)
+ stream.stats.bytes += vors.IPHdrLen(from.IP) + 8 + uint64(n)
ctr = binary.BigEndian.Uint32(buf)
if ctr <= stream.ctr {
stream.stats.reorder++
continue
}
OurStats.pkts++
- OurStats.bytes += 1
+ OurStats.bytes += vors.IPHdrLen(srvAddrUDP.IP) + 8 + 1
if _, err = conn.Write([]byte{sid}); err != nil {
log.Println("send:", err)
Finish <- struct{}{}
pkt = buf[:4+n+vors.TagLen]
OurStats.pkts++
- OurStats.bytes += uint64(len(pkt))
+ OurStats.bytes += vors.IPHdrLen(srvAddrUDP.IP) + 8 + uint64(len(pkt))
OurStats.last = time.Now()
OurStats.AddRMS(pcm)
if _, err = conn.Write(pkt); err != nil {
}
peer.stats.pktsRx++
- peer.stats.bytesRx += uint64(n)
+ peer.stats.bytesRx += vors.IPHdrLen(from.IP) + 8 + uint64(n)
if n == 1 {
continue
}
continue
}
p.stats.pktsTx++
- p.stats.bytesTx += uint64(n)
+ p.stats.bytesTx += vors.IPHdrLen(p.addr.IP) + 8 + uint64(n)
if _, err = lnUDP.WriteToUDP(buf[:n], p.addr); err != nil {
slog.Warn("sendto", "peer", peer.name, "err", err)
}
package internal
-import "time"
+import (
+ "net"
+ "time"
+)
const (
TagLen = 8
PingTime = 10 * time.Second
ScreenRefresh = 200 * time.Millisecond
)
+
+func IPHdrLen(ip net.IP) uint64 {
+ if ip.To4() == nil {
+ return 40
+ }
+ return 20
+}