From ff210aa67f386189c35b1342c9efa28e7e15b240 Mon Sep 17 00:00:00 2001 From: v2ray Date: Mon, 9 May 2016 08:23:31 -0700 Subject: [PATCH] agressively close stream --- proxy/vmess/inbound/inbound.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/proxy/vmess/inbound/inbound.go b/proxy/vmess/inbound/inbound.go index bab194ece..95e35dab8 100644 --- a/proxy/vmess/inbound/inbound.go +++ b/proxy/vmess/inbound/inbound.go @@ -151,8 +151,6 @@ func (this *VMessInboundHandler) HandleConnection(connection *hub.Connection) { connReader.SetTimeOut(userSettings.PayloadReadTimeout) reader.SetCached(false) go func() { - defer input.Close() - defer readFinish.Unlock() bodyReader := session.DecodeRequestBody(reader) var requestReader v2io.Reader if request.Option.IsChunkStream() { @@ -162,6 +160,8 @@ func (this *VMessInboundHandler) HandleConnection(connection *hub.Connection) { } v2io.Pipe(requestReader, input) requestReader.Release() + input.Close() + readFinish.Unlock() }() writer := v2io.NewBufferedWriter(connection) @@ -190,6 +190,7 @@ func (this *VMessInboundHandler) HandleConnection(connection *hub.Connection) { writer = vmessio.NewAuthChunkWriter(writer) } v2io.Pipe(output, writer) + output.Release() if request.Option.IsChunkStream() { writer.Write(alloc.NewSmallBuffer().Clear()) }