1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-12-21 09:36:34 -05:00

put buffer into client session as allocation optimization

This commit is contained in:
Darien Raymond 2018-09-12 15:27:45 +02:00
parent a89ff38fe6
commit 09b601528b
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169

View File

@ -39,6 +39,8 @@ type ClientSession struct {
responseBodyIV [16]byte
responseReader io.Reader
responseHeader byte
buffer [33]byte // 16 + 16 + 1
}
var clientSessionPool = sync.Pool{
@ -47,10 +49,11 @@ var clientSessionPool = sync.Pool{
// NewClientSession creates a new ClientSession.
func NewClientSession(idHash protocol.IDHash) *ClientSession {
randomBytes := make([]byte, 33) // 16 + 16 + 1
session := clientSessionPool.Get().(*ClientSession)
randomBytes := session.buffer[:]
common.Must2(rand.Read(randomBytes))
session := clientSessionPool.Get().(*ClientSession)
copy(session.requestBodyKey[:], randomBytes[:16])
copy(session.requestBodyIV[:], randomBytes[16:32])
session.responseHeader = randomBytes[32]