Browse Source

agressively close stream

v2ray 9 năm trước cách đây
mục cha
commit
ff210aa67f
1 tập tin đã thay đổi với 3 bổ sung2 xóa
  1. 3 2
      proxy/vmess/inbound/inbound.go

+ 3 - 2
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())
 			}