Improve traffic totals

This commit is contained in:
世界
2026-08-30 17:41:46 +08:00
parent 08986ad405
commit 6d431a2c43
2 changed files with 34 additions and 28 deletions
+6 -20
View File
@@ -37,15 +37,9 @@ func (m *Manager) RoutedConnection(ctx context.Context, conn net.Conn, metadata
upload := new(atomic.Int64)
download := new(atomic.Int64)
tracker := &connTracker{
ExtendedConn: bufio.NewCounterConn(conn, []N.CountFunc{func(n int64) {
upload.Add(n)
m.uploadTotal.Add(n)
}}, []N.CountFunc{func(n int64) {
download.Add(n)
m.downloadTotal.Add(n)
}}),
metadata: m.newTrackerMetadata(metadata, matchedRule, matchOutbound, upload, download),
manager: m,
ExtendedConn: bufio.NewInt64CounterConn(conn, []*atomic.Int64{upload}, []*atomic.Int64{download}),
metadata: m.newTrackerMetadata(metadata, matchedRule, matchOutbound, upload, download),
manager: m,
}
m.join(tracker)
return tracker
@@ -55,15 +49,9 @@ func (m *Manager) RoutedPacketConnection(ctx context.Context, conn N.PacketConn,
upload := new(atomic.Int64)
download := new(atomic.Int64)
tracker := &packetConnTracker{
PacketConn: bufio.NewCounterPacketConn(conn, []N.CountFunc{func(n int64) {
upload.Add(n)
m.uploadTotal.Add(n)
}}, []N.CountFunc{func(n int64) {
download.Add(n)
m.downloadTotal.Add(n)
}}),
metadata: m.newTrackerMetadata(metadata, matchedRule, matchOutbound, upload, download),
manager: m,
PacketConn: bufio.NewInt64CounterPacketConn(conn, []*atomic.Int64{upload}, nil, []*atomic.Int64{download}, nil),
metadata: m.newTrackerMetadata(metadata, matchedRule, matchOutbound, upload, download),
manager: m,
}
m.join(tracker)
return tracker
@@ -165,12 +153,10 @@ func (t *flowTracker) AttachFlow(handle tun.FlowHandle) {
func (t *flowTracker) CountForward(n int) {
t.metadata.Upload.Add(int64(n))
t.manager.uploadTotal.Add(int64(n))
}
func (t *flowTracker) CountReverse(n int) {
t.metadata.Download.Add(int64(n))
t.manager.downloadTotal.Add(int64(n))
}
func (t *flowTracker) FlowEstablished() {