Do not use unnecessary lock in connRewind

This commit is contained in:
9seconds
2026-02-23 10:12:25 +01:00
parent ee524abdb5
commit e50cee5748
2 changed files with 4 additions and 12 deletions
+2 -10
View File
@@ -4,7 +4,6 @@ import (
"bytes"
"context"
"io"
"sync"
"github.com/9seconds/mtg/v2/essentials"
)
@@ -40,22 +39,15 @@ func (c connTraffic) Write(b []byte) (int, error) {
type connRewind struct {
essentials.Conn
active io.Reader
buf bytes.Buffer
mutex sync.RWMutex
active io.Reader
}
func (c *connRewind) Read(p []byte) (int, error) {
c.mutex.RLock()
defer c.mutex.RUnlock()
return c.active.Read(p) //nolint: wrapcheck
return c.active.Read(p)
}
func (c *connRewind) Rewind() {
c.mutex.Lock()
defer c.mutex.Unlock()
c.active = io.MultiReader(&c.buf, c.Conn)
}
+2 -2
View File
@@ -243,14 +243,14 @@ func (p *Proxy) doTelegramCall(ctx *streamContext) error {
return fmt.Errorf("no addresses to call: %w", err)
}
conn, err = foundAddr.Obfuscator.SendHandshake(conn, ctx.dc)
tgConn, err := foundAddr.Obfuscator.SendHandshake(conn, ctx.dc)
if err != nil {
conn.Close()
return fmt.Errorf("cannot perform server handshake: %w", err)
}
ctx.telegramConn = connTraffic{
Conn: conn,
Conn: tgConn,
streamID: ctx.streamID,
stream: p.eventStream,
ctx: ctx,