diff --git a/wrappers/packet/mtproto_frame.go b/wrappers/packet/mtproto_frame.go index 6190d39..dd51a71 100644 --- a/wrappers/packet/mtproto_frame.go +++ b/wrappers/packet/mtproto_frame.go @@ -42,8 +42,7 @@ type wrapperMtprotoFrame struct { } func (w *wrapperMtprotoFrame) Read() (conntypes.Packet, error) { // nolint: funlen - buf := acquireMtprotoFrameBytesBuffer() - defer releaseMtprotoFrameBytesBuffer(buf) + buf := &bytes.Buffer{} sum := crc32.NewIEEE() writer := io.MultiWriter(buf, sum) @@ -114,8 +113,7 @@ func (w *wrapperMtprotoFrame) Write(p conntypes.Packet) error { messageLength := 4 + 4 + len(p) + 4 paddingLength := (aes.BlockSize - messageLength%aes.BlockSize) % aes.BlockSize - buf := acquireMtprotoFrameBytesBuffer() - defer releaseMtprotoFrameBytesBuffer(buf) + buf := &bytes.Buffer{} binary.Write(buf, binary.LittleEndian, uint32(messageLength)) // nolint: errcheck binary.Write(buf, binary.LittleEndian, w.writeSeqNo) // nolint: errcheck diff --git a/wrappers/packet/pools.go b/wrappers/packet/pools.go deleted file mode 100644 index c27e30e..0000000 --- a/wrappers/packet/pools.go +++ /dev/null @@ -1,23 +0,0 @@ -package packet - -import ( - "bytes" - "sync" -) - -var ( - poolMtprotoFrameBytesBuffer = sync.Pool{ - New: func() interface{} { - return &bytes.Buffer{} - }, - } -) - -func acquireMtprotoFrameBytesBuffer() *bytes.Buffer { - return poolMtprotoFrameBytesBuffer.Get().(*bytes.Buffer) -} - -func releaseMtprotoFrameBytesBuffer(buf *bytes.Buffer) { - buf.Reset() - poolMtprotoFrameBytesBuffer.Put(buf) -} diff --git a/wrappers/packetack/client_abridged.go b/wrappers/packetack/client_abridged.go index 556a4f2..1b8aa9a 100644 --- a/wrappers/packetack/client_abridged.go +++ b/wrappers/packetack/client_abridged.go @@ -88,9 +88,7 @@ func (w *wrapperClientAbridged) Write(packet conntypes.Packet, acks *conntypes.C return nil case packetLength < clientAbridgedLargePacketLength: length24 := utils.ToUint24(uint32(packetLength)) - - buf := acquireClientBytesBuffer() - defer releaseClientBytesBuffer(buf) + buf := bytes.Buffer{} buf.WriteByte(byte(clientAbridgedSmallPacketLength)) buf.Write(length24[:]) diff --git a/wrappers/packetack/client_intermediate_secure.go b/wrappers/packetack/client_intermediate_secure.go index 9c3c448..2af15ab 100644 --- a/wrappers/packetack/client_intermediate_secure.go +++ b/wrappers/packetack/client_intermediate_secure.go @@ -1,6 +1,7 @@ package packetack import ( + "bytes" "encoding/binary" "fmt" "math/rand" @@ -34,10 +35,9 @@ func (w *wrapperClientIntermediateSecure) Write(packet conntypes.Packet, acks *c return nil } - buf := acquireClientBytesBuffer() - defer releaseClientBytesBuffer(buf) - + buf := &bytes.Buffer{} paddingLength := rand.Intn(4) + buf.Grow(4 + len(packet) + paddingLength) binary.Write(buf, binary.LittleEndian, uint32(len(packet)+paddingLength)) // nolint: errcheck diff --git a/wrappers/packetack/pools.go b/wrappers/packetack/pools.go deleted file mode 100644 index 30a0d7d..0000000 --- a/wrappers/packetack/pools.go +++ /dev/null @@ -1,23 +0,0 @@ -package packetack - -import ( - "bytes" - "sync" -) - -var ( - poolClientBytesBuffer = sync.Pool{ - New: func() interface{} { - return &bytes.Buffer{} - }, - } -) - -func acquireClientBytesBuffer() *bytes.Buffer { - return poolClientBytesBuffer.Get().(*bytes.Buffer) -} - -func releaseClientBytesBuffer(buf *bytes.Buffer) { - buf.Reset() - poolClientBytesBuffer.Put(buf) -} diff --git a/wrappers/stream/faketls.go b/wrappers/stream/faketls.go index d074dcb..3464935 100644 --- a/wrappers/stream/faketls.go +++ b/wrappers/stream/faketls.go @@ -39,13 +39,11 @@ func (w *wrapperFakeTLS) WriteTimeout(p []byte, timeout time.Duration) (int, err func (w *wrapperFakeTLS) write(p []byte, writeFunc func([]byte) (int, error)) (int, error) { sum := 0 - - buf := acquireBytesBuffer() - defer releaseBytesBuffer(buf) + buf := bytes.Buffer{} for _, v := range tlstypes.MakeRecords(p) { buf.Reset() - v.WriteBytes(buf) + v.WriteBytes(&buf) _, err := writeFunc(buf.Bytes()) if err != nil { diff --git a/wrappers/stream/mtproto_cipher.go b/wrappers/stream/mtproto_cipher.go index fd99169..5cbf203 100644 --- a/wrappers/stream/mtproto_cipher.go +++ b/wrappers/stream/mtproto_cipher.go @@ -1,6 +1,7 @@ package stream import ( + "bytes" "crypto/aes" "crypto/cipher" "crypto/md5" // nolint: gosec @@ -53,8 +54,8 @@ func mtprotoDeriveKeys(purpose mtprotoCipherPurpose, resp *rpc.NonceResponse, client, remote *net.TCPAddr, secret []byte) ([]byte, []byte) { - message := acquireBytesBuffer() - defer releaseBytesBuffer(message) + + message := bytes.Buffer{} message.Write(resp.Nonce) // nolint: gosec message.Write(req.Nonce) // nolint: gosec diff --git a/wrappers/stream/obfuscated2.go b/wrappers/stream/obfuscated2.go index e005c84..bd9278b 100644 --- a/wrappers/stream/obfuscated2.go +++ b/wrappers/stream/obfuscated2.go @@ -1,6 +1,7 @@ package stream import ( + "bytes" "crypto/cipher" "fmt" "net" @@ -40,8 +41,7 @@ func (w *wrapperObfuscated2) Read(p []byte) (int, error) { } func (w *wrapperObfuscated2) WriteTimeout(p []byte, timeout time.Duration) (int, error) { - buffer := acquireBytesBuffer() - defer releaseBytesBuffer(buffer) + buffer := bytes.Buffer{} buffer.Write(p) @@ -53,8 +53,7 @@ func (w *wrapperObfuscated2) WriteTimeout(p []byte, timeout time.Duration) (int, } func (w *wrapperObfuscated2) Write(p []byte) (int, error) { - buffer := acquireBytesBuffer() - defer releaseBytesBuffer(buffer) + buffer := bytes.Buffer{} buffer.Write(p) diff --git a/wrappers/stream/pools.go b/wrappers/stream/pools.go deleted file mode 100644 index 3fd9907..0000000 --- a/wrappers/stream/pools.go +++ /dev/null @@ -1,23 +0,0 @@ -package stream - -import ( - "bytes" - "sync" -) - -var ( - poolBytesBuffer = sync.Pool{ - New: func() interface{} { - return &bytes.Buffer{} - }, - } -) - -func acquireBytesBuffer() *bytes.Buffer { - return poolBytesBuffer.Get().(*bytes.Buffer) -} - -func releaseBytesBuffer(buf *bytes.Buffer) { - buf.Reset() - poolBytesBuffer.Put(buf) -}