fix: correct sing-box traffic directio

This commit is contained in:
xboard
2026-03-26 13:52:36 +08:00
parent 4b10271ce0
commit 95f582c74f
+6 -6
View File
@@ -578,7 +578,7 @@ func (c *trackedConn) Read(b []byte) (int, error) {
n, err := c.Conn.Read(b)
if n > 0 {
if c.us != nil {
c.us.download.Add(int64(n))
c.us.upload.Add(int64(n)) // 从入站读取 = 用户上传
}
if c.limiter != nil {
// Non-blocking rate limiting
@@ -626,7 +626,7 @@ func (c *trackedConn) Write(b []byte) (int, error) {
n, err := c.Conn.Write(b)
if n > 0 && c.us != nil {
c.us.upload.Add(int64(n))
c.us.download.Add(int64(n)) // 向入站写入 = 用户下载
}
return n, err
}
@@ -670,14 +670,14 @@ func (c *trackedConn) UnwrapReader() (io.Reader, []N.CountFunc) {
if c.us == nil {
return c.Conn, nil
}
return c.Conn, []N.CountFunc{c.makeCountFunc(&c.us.download)}
return c.Conn, []N.CountFunc{c.makeCountFunc(&c.us.upload)} // 从入站读取 = 用户上传
}
func (c *trackedConn) UnwrapWriter() (io.Writer, []N.CountFunc) {
if c.us == nil {
return c.Conn, nil
}
return c.Conn, []N.CountFunc{c.makeCountFunc(&c.us.upload)}
return c.Conn, []N.CountFunc{c.makeCountFunc(&c.us.download)} // 向入站写入 = 用户下载
}
func (c *trackedConn) Upstream() any { return c.Conn }
@@ -703,7 +703,7 @@ func (c *trackedPacketConn) ReadPacket(buffer *buf.Buffer) (singM.Socksaddr, err
if err == nil {
n := int64(buffer.Len())
if c.us != nil {
c.us.download.Add(n)
c.us.upload.Add(n) // 从入站读取 = 用户上传
}
if c.limiter != nil {
// Non-blocking rate limiting with context cancellation
@@ -749,7 +749,7 @@ func (c *trackedPacketConn) WritePacket(buffer *buf.Buffer, dest singM.Socksaddr
err := c.PacketConn.WritePacket(buffer, dest)
if err == nil && c.us != nil {
c.us.upload.Add(n)
c.us.download.Add(n) // 向入站写入 = 用户下载
}
return err
}