Skip to content

Commit ce37f6c

Browse files
committed
chore: decrease memory using
1 parent acefe59 commit ce37f6c

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

transport/vless/encryption/common.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,14 @@ type CommonConn struct {
2222
PreWrite []byte
2323
GCM *GCM
2424
PeerPadding []byte
25-
PeerInBytes []byte
25+
rawInput bytes.Buffer // PeerInBytes
2626
PeerGCM *GCM
2727
input bytes.Reader // PeerCache
2828
}
2929

3030
func NewCommonConn(conn net.Conn) *CommonConn {
3131
return &CommonConn{
32-
Conn: conn,
33-
PeerInBytes: make([]byte, 5+17000), // no need to use sync.Pool, because we are always reading
32+
Conn: conn,
3433
}
3534
}
3635

@@ -93,11 +92,11 @@ func (c *CommonConn) Read(b []byte) (int, error) {
9392
if c.input.Len() > 0 {
9493
return c.input.Read(b)
9594
}
96-
peerHeader := c.PeerInBytes[:5]
95+
peerHeader := make([]byte, 5)
9796
if _, err := io.ReadFull(c.Conn, peerHeader); err != nil {
9897
return 0, err
9998
}
100-
l, err := DecodeHeader(c.PeerInBytes[:5]) // l: 17~17000
99+
l, err := DecodeHeader(peerHeader) // l: 17~17000
101100
if err != nil {
102101
if c.Client != nil && errors.Is(err, ErrInvalidHeader) { // client's 0-RTT
103102
c.Client.RWLock.Lock()
@@ -110,7 +109,8 @@ func (c *CommonConn) Read(b []byte) (int, error) {
110109
return 0, err
111110
}
112111
c.Client = nil
113-
peerData := c.PeerInBytes[5 : 5+l]
112+
c.rawInput.Grow(l)
113+
peerData := c.rawInput.Bytes()[:l]
114114
if _, err := io.ReadFull(c.Conn, peerData); err != nil {
115115
return 0, err
116116
}
@@ -120,7 +120,7 @@ func (c *CommonConn) Read(b []byte) (int, error) {
120120
}
121121
var newGCM *GCM
122122
if bytes.Equal(c.PeerGCM.Nonce[:], MaxNonce) {
123-
newGCM = NewGCM(c.PeerInBytes[:5+l], c.UnitedKey)
123+
newGCM = NewGCM(append(peerHeader, peerData...), c.UnitedKey)
124124
}
125125
_, err = c.PeerGCM.Open(dst[:0], nil, peerData, peerHeader)
126126
if newGCM != nil {

0 commit comments

Comments
 (0)