1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-07-01 03:25:23 +00:00

use local buffer in UDP hub

This commit is contained in:
Darien Raymond 2016-11-01 11:46:34 +01:00
parent d3f323e24b
commit 5b58066345
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169

View File

@ -18,6 +18,7 @@ type UDPHub struct {
conn *net.UDPConn
option ListenOption
accepting bool
pool *alloc.BufferPool
}
type ListenOption struct {
@ -48,6 +49,7 @@ func ListenUDP(address v2net.Address, port v2net.Port, option ListenOption) (*UD
hub := &UDPHub{
conn: udpConn,
option: option,
pool: alloc.NewBufferPool(2048, 64),
}
go hub.start()
return hub, nil
@ -75,7 +77,7 @@ func (this *UDPHub) start() {
oobBytes := make([]byte, 256)
for this.Running() {
buffer := alloc.NewBuffer()
buffer := this.pool.Allocate()
nBytes, noob, _, addr, err := ReadUDPMsg(this.conn, buffer.Value, oobBytes)
if err != nil {
log.Info("UDP|Hub: Failed to read UDP msg: ", err)