mirror of https://github.com/v2ray/v2ray-core
early release buffers for better reusing
parent
1e0cad50b1
commit
caa52e9327
|
@ -117,9 +117,8 @@ func (s *Server) handlerUDPPayload(ctx context.Context, conn internet.Connection
|
|||
|
||||
ctx = protocol.ContextWithUser(ctx, request.User)
|
||||
udpServer.Dispatch(ctx, dest, data, func(payload *buf.Buffer) {
|
||||
defer payload.Release()
|
||||
|
||||
data, err := EncodeUDPPacket(request, payload.Bytes())
|
||||
payload.Release()
|
||||
if err != nil {
|
||||
newError("failed to encode UDP packet").Base(err).AtWarning().WithContext(ctx).WriteToLog()
|
||||
return
|
||||
|
|
|
@ -209,11 +209,11 @@ func (s *Server) handleUDPPayload(ctx context.Context, conn internet.Connection,
|
|||
}
|
||||
|
||||
udpServer.Dispatch(ctx, request.Destination(), payload, func(payload *buf.Buffer) {
|
||||
defer payload.Release()
|
||||
|
||||
newError("writing back UDP response with ", payload.Len(), " bytes").AtDebug().WithContext(ctx).WriteToLog()
|
||||
|
||||
udpMessage, err := EncodeUDPPacket(request, payload.Bytes())
|
||||
payload.Release()
|
||||
|
||||
defer udpMessage.Release()
|
||||
if err != nil {
|
||||
newError("failed to write UDP response").AtWarning().Base(err).WithContext(ctx).WriteToLog()
|
||||
|
|
|
@ -73,9 +73,9 @@ func NewListener(ctx context.Context, address net.Address, port net.Port, addCon
|
|||
}
|
||||
|
||||
func (l *Listener) OnReceive(payload *buf.Buffer, src net.Destination, originalDest net.Destination) {
|
||||
defer payload.Release()
|
||||
|
||||
segments := l.reader.Read(payload.Bytes())
|
||||
payload.Release()
|
||||
|
||||
if len(segments) == 0 {
|
||||
newError("discarding invalid payload from ", src).WriteToLog()
|
||||
return
|
||||
|
|
Loading…
Reference in New Issue