fix buffer size
This commit is contained in:
parent
d8af58cec7
commit
b015ac660a
8
relay.go
8
relay.go
@ -334,16 +334,18 @@ func (c *relayConn) Write(b []byte) (n int, err error) {
|
|||||||
if !c.udp {
|
if !c.udp {
|
||||||
return c.Conn.Write(b)
|
return c.Conn.Write(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nsize := 2 + len(b)
|
||||||
var buf []byte
|
var buf []byte
|
||||||
if 2+len(b) <= mediumBufferSize {
|
if nsize <= mediumBufferSize {
|
||||||
buf = mPool.Get().([]byte)
|
buf = mPool.Get().([]byte)
|
||||||
defer mPool.Put(buf)
|
defer mPool.Put(buf)
|
||||||
} else {
|
} else {
|
||||||
buf = make([]byte, 2+len(b))
|
buf = make([]byte, nsize)
|
||||||
}
|
}
|
||||||
binary.BigEndian.PutUint16(buf[:2], uint16(len(b)))
|
binary.BigEndian.PutUint16(buf[:2], uint16(len(b)))
|
||||||
n = copy(buf[2:], b)
|
n = copy(buf[2:], b)
|
||||||
_, err = c.Conn.Write(buf)
|
_, err = c.Conn.Write(buf[:nsize])
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -336,7 +336,7 @@ func (h *tunHandler) transportTun(tun net.Conn, conn net.PacketConn, raddr net.A
|
|||||||
for {
|
for {
|
||||||
err := func() error {
|
err := func() error {
|
||||||
b := sPool.Get().([]byte)
|
b := sPool.Get().([]byte)
|
||||||
defer mPool.Put(b)
|
defer sPool.Put(b)
|
||||||
|
|
||||||
n, addr, err := conn.ReadFrom(b)
|
n, addr, err := conn.ReadFrom(b)
|
||||||
if err != nil &&
|
if err != nil &&
|
||||||
@ -698,7 +698,7 @@ func (h *tapHandler) transportTap(tap net.Conn, conn net.PacketConn, raddr net.A
|
|||||||
for {
|
for {
|
||||||
err := func() error {
|
err := func() error {
|
||||||
b := sPool.Get().([]byte)
|
b := sPool.Get().([]byte)
|
||||||
defer mPool.Put(b)
|
defer sPool.Put(b)
|
||||||
|
|
||||||
n, addr, err := conn.ReadFrom(b)
|
n, addr, err := conn.ReadFrom(b)
|
||||||
if err != nil &&
|
if err != nil &&
|
||||||
|
Loading…
Reference in New Issue
Block a user