diff --git a/mtglib/internal/faketls/conn.go b/mtglib/internal/faketls/conn.go index 85acee2..2d04978 100644 --- a/mtglib/internal/faketls/conn.go +++ b/mtglib/internal/faketls/conn.go @@ -47,10 +47,7 @@ func (c *Conn) Write(p []byte) (int, error) { rec.Type = record.TypeApplicationData rec.Version = record.Version12 - sendBuffer := acquireBytesBuffer() - defer releaseBytesBuffer(sendBuffer) - - lenP := len(p) + written := 0 for len(p) > 0 { chunkSize := rand.IntN(record.TLSMaxRecordSize) @@ -60,14 +57,16 @@ func (c *Conn) Write(p []byte) (int, error) { rec.Payload.Reset() rec.Payload.Write(p[:chunkSize]) - rec.Dump(sendBuffer) //nolint: errcheck + + err := rec.Dump(c.Conn) + written += chunkSize + + if err != nil { + return written, err + } p = p[chunkSize:] } - if _, err := c.Conn.Write(sendBuffer.Bytes()); err != nil { - return 0, err //nolint: wrapcheck - } - - return lenP, nil + return written, nil } diff --git a/mtglib/internal/faketls/pools.go b/mtglib/internal/faketls/pools.go deleted file mode 100644 index b1f4275..0000000 --- a/mtglib/internal/faketls/pools.go +++ /dev/null @@ -1,21 +0,0 @@ -package faketls - -import ( - "bytes" - "sync" -) - -var bytesBufferPool = sync.Pool{ - New: func() any { - return &bytes.Buffer{} - }, -} - -func acquireBytesBuffer() *bytes.Buffer { - return bytesBufferPool.Get().(*bytes.Buffer) //nolint: forcetypeassert -} - -func releaseBytesBuffer(b *bytes.Buffer) { - b.Reset() - bytesBufferPool.Put(b) -} diff --git a/mtglib/internal/faketls/welcome.go b/mtglib/internal/faketls/welcome.go index 0d91dac..e9fa85b 100644 --- a/mtglib/internal/faketls/welcome.go +++ b/mtglib/internal/faketls/welcome.go @@ -1,6 +1,7 @@ package faketls import ( + "bytes" "crypto/hmac" "crypto/rand" "crypto/sha256" @@ -13,8 +14,7 @@ import ( ) func SendWelcomePacket(writer io.Writer, secret []byte, clientHello ClientHello) error { - buf := acquireBytesBuffer() - defer releaseBytesBuffer(buf) + buf := &bytes.Buffer{} rec := record.AcquireRecord() defer record.ReleaseRecord(rec) @@ -58,8 +58,7 @@ func SendWelcomePacket(writer io.Writer, secret []byte, clientHello ClientHello) } func generateServerHello(writer io.Writer, clientHello ClientHello) { - bodyBuf := acquireBytesBuffer() - defer releaseBytesBuffer(bodyBuf) + bodyBuf := &bytes.Buffer{} sliceBuf := [2]byte{} digest := [RandomLen]byte{}