Przeglądaj źródła

Cleanup pools from wrappes

tags/v1.0.6^2^2
9seconds 5 lat temu
rodzic
commit
86a8f69273

+ 2
- 4
wrappers/packet/mtproto_frame.go Wyświetl plik

42
 }
42
 }
43
 
43
 
44
 func (w *wrapperMtprotoFrame) Read() (conntypes.Packet, error) { // nolint: funlen
44
 func (w *wrapperMtprotoFrame) Read() (conntypes.Packet, error) { // nolint: funlen
45
-	buf := acquireMtprotoFrameBytesBuffer()
46
-	defer releaseMtprotoFrameBytesBuffer(buf)
45
+	buf := &bytes.Buffer{}
47
 
46
 
48
 	sum := crc32.NewIEEE()
47
 	sum := crc32.NewIEEE()
49
 	writer := io.MultiWriter(buf, sum)
48
 	writer := io.MultiWriter(buf, sum)
114
 	messageLength := 4 + 4 + len(p) + 4
113
 	messageLength := 4 + 4 + len(p) + 4
115
 	paddingLength := (aes.BlockSize - messageLength%aes.BlockSize) % aes.BlockSize
114
 	paddingLength := (aes.BlockSize - messageLength%aes.BlockSize) % aes.BlockSize
116
 
115
 
117
-	buf := acquireMtprotoFrameBytesBuffer()
118
-	defer releaseMtprotoFrameBytesBuffer(buf)
116
+	buf := &bytes.Buffer{}
119
 
117
 
120
 	binary.Write(buf, binary.LittleEndian, uint32(messageLength)) // nolint: errcheck
118
 	binary.Write(buf, binary.LittleEndian, uint32(messageLength)) // nolint: errcheck
121
 	binary.Write(buf, binary.LittleEndian, w.writeSeqNo)          // nolint: errcheck
119
 	binary.Write(buf, binary.LittleEndian, w.writeSeqNo)          // nolint: errcheck

+ 0
- 23
wrappers/packet/pools.go Wyświetl plik

1
-package packet
2
-
3
-import (
4
-	"bytes"
5
-	"sync"
6
-)
7
-
8
-var (
9
-	poolMtprotoFrameBytesBuffer = sync.Pool{
10
-		New: func() interface{} {
11
-			return &bytes.Buffer{}
12
-		},
13
-	}
14
-)
15
-
16
-func acquireMtprotoFrameBytesBuffer() *bytes.Buffer {
17
-	return poolMtprotoFrameBytesBuffer.Get().(*bytes.Buffer)
18
-}
19
-
20
-func releaseMtprotoFrameBytesBuffer(buf *bytes.Buffer) {
21
-	buf.Reset()
22
-	poolMtprotoFrameBytesBuffer.Put(buf)
23
-}

+ 1
- 3
wrappers/packetack/client_abridged.go Wyświetl plik

88
 		return nil
88
 		return nil
89
 	case packetLength < clientAbridgedLargePacketLength:
89
 	case packetLength < clientAbridgedLargePacketLength:
90
 		length24 := utils.ToUint24(uint32(packetLength))
90
 		length24 := utils.ToUint24(uint32(packetLength))
91
-
92
-		buf := acquireClientBytesBuffer()
93
-		defer releaseClientBytesBuffer(buf)
91
+		buf := bytes.Buffer{}
94
 
92
 
95
 		buf.WriteByte(byte(clientAbridgedSmallPacketLength))
93
 		buf.WriteByte(byte(clientAbridgedSmallPacketLength))
96
 		buf.Write(length24[:])
94
 		buf.Write(length24[:])

+ 3
- 3
wrappers/packetack/client_intermediate_secure.go Wyświetl plik

1
 package packetack
1
 package packetack
2
 
2
 
3
 import (
3
 import (
4
+	"bytes"
4
 	"encoding/binary"
5
 	"encoding/binary"
5
 	"fmt"
6
 	"fmt"
6
 	"math/rand"
7
 	"math/rand"
34
 		return nil
35
 		return nil
35
 	}
36
 	}
36
 
37
 
37
-	buf := acquireClientBytesBuffer()
38
-	defer releaseClientBytesBuffer(buf)
39
-
38
+	buf := &bytes.Buffer{}
40
 	paddingLength := rand.Intn(4)
39
 	paddingLength := rand.Intn(4)
40
+
41
 	buf.Grow(4 + len(packet) + paddingLength)
41
 	buf.Grow(4 + len(packet) + paddingLength)
42
 
42
 
43
 	binary.Write(buf, binary.LittleEndian, uint32(len(packet)+paddingLength)) // nolint: errcheck
43
 	binary.Write(buf, binary.LittleEndian, uint32(len(packet)+paddingLength)) // nolint: errcheck

+ 0
- 23
wrappers/packetack/pools.go Wyświetl plik

1
-package packetack
2
-
3
-import (
4
-	"bytes"
5
-	"sync"
6
-)
7
-
8
-var (
9
-	poolClientBytesBuffer = sync.Pool{
10
-		New: func() interface{} {
11
-			return &bytes.Buffer{}
12
-		},
13
-	}
14
-)
15
-
16
-func acquireClientBytesBuffer() *bytes.Buffer {
17
-	return poolClientBytesBuffer.Get().(*bytes.Buffer)
18
-}
19
-
20
-func releaseClientBytesBuffer(buf *bytes.Buffer) {
21
-	buf.Reset()
22
-	poolClientBytesBuffer.Put(buf)
23
-}

+ 2
- 4
wrappers/stream/faketls.go Wyświetl plik

39
 
39
 
40
 func (w *wrapperFakeTLS) write(p []byte, writeFunc func([]byte) (int, error)) (int, error) {
40
 func (w *wrapperFakeTLS) write(p []byte, writeFunc func([]byte) (int, error)) (int, error) {
41
 	sum := 0
41
 	sum := 0
42
-
43
-	buf := acquireBytesBuffer()
44
-	defer releaseBytesBuffer(buf)
42
+	buf := bytes.Buffer{}
45
 
43
 
46
 	for _, v := range tlstypes.MakeRecords(p) {
44
 	for _, v := range tlstypes.MakeRecords(p) {
47
 		buf.Reset()
45
 		buf.Reset()
48
-		v.WriteBytes(buf)
46
+		v.WriteBytes(&buf)
49
 
47
 
50
 		_, err := writeFunc(buf.Bytes())
48
 		_, err := writeFunc(buf.Bytes())
51
 		if err != nil {
49
 		if err != nil {

+ 3
- 2
wrappers/stream/mtproto_cipher.go Wyświetl plik

1
 package stream
1
 package stream
2
 
2
 
3
 import (
3
 import (
4
+	"bytes"
4
 	"crypto/aes"
5
 	"crypto/aes"
5
 	"crypto/cipher"
6
 	"crypto/cipher"
6
 	"crypto/md5"  // nolint: gosec
7
 	"crypto/md5"  // nolint: gosec
53
 	resp *rpc.NonceResponse,
54
 	resp *rpc.NonceResponse,
54
 	client, remote *net.TCPAddr,
55
 	client, remote *net.TCPAddr,
55
 	secret []byte) ([]byte, []byte) {
56
 	secret []byte) ([]byte, []byte) {
56
-	message := acquireBytesBuffer()
57
-	defer releaseBytesBuffer(message)
57
+
58
+	message := bytes.Buffer{}
58
 
59
 
59
 	message.Write(resp.Nonce)   // nolint: gosec
60
 	message.Write(resp.Nonce)   // nolint: gosec
60
 	message.Write(req.Nonce)    // nolint: gosec
61
 	message.Write(req.Nonce)    // nolint: gosec

+ 3
- 4
wrappers/stream/obfuscated2.go Wyświetl plik

1
 package stream
1
 package stream
2
 
2
 
3
 import (
3
 import (
4
+	"bytes"
4
 	"crypto/cipher"
5
 	"crypto/cipher"
5
 	"fmt"
6
 	"fmt"
6
 	"net"
7
 	"net"
40
 }
41
 }
41
 
42
 
42
 func (w *wrapperObfuscated2) WriteTimeout(p []byte, timeout time.Duration) (int, error) {
43
 func (w *wrapperObfuscated2) WriteTimeout(p []byte, timeout time.Duration) (int, error) {
43
-	buffer := acquireBytesBuffer()
44
-	defer releaseBytesBuffer(buffer)
44
+	buffer := bytes.Buffer{}
45
 
45
 
46
 	buffer.Write(p)
46
 	buffer.Write(p)
47
 
47
 
53
 }
53
 }
54
 
54
 
55
 func (w *wrapperObfuscated2) Write(p []byte) (int, error) {
55
 func (w *wrapperObfuscated2) Write(p []byte) (int, error) {
56
-	buffer := acquireBytesBuffer()
57
-	defer releaseBytesBuffer(buffer)
56
+	buffer := bytes.Buffer{}
58
 
57
 
59
 	buffer.Write(p)
58
 	buffer.Write(p)
60
 
59
 

+ 0
- 23
wrappers/stream/pools.go Wyświetl plik

1
-package stream
2
-
3
-import (
4
-	"bytes"
5
-	"sync"
6
-)
7
-
8
-var (
9
-	poolBytesBuffer = sync.Pool{
10
-		New: func() interface{} {
11
-			return &bytes.Buffer{}
12
-		},
13
-	}
14
-)
15
-
16
-func acquireBytesBuffer() *bytes.Buffer {
17
-	return poolBytesBuffer.Get().(*bytes.Buffer)
18
-}
19
-
20
-func releaseBytesBuffer(buf *bytes.Buffer) {
21
-	buf.Reset()
22
-	poolBytesBuffer.Put(buf)
23
-}

Ładowanie…
Anuluj
Zapisz