Pārlūkot izejas kodu

simplify socks transport

Darien Raymond 9 gadi atpakaļ
vecāks
revīzija
9b72d3cbd7
1 mainītis faili ar 6 papildinājumiem un 13 dzēšanām
  1. 6 13
      proxy/socks/server.go

+ 6 - 13
proxy/socks/server.go

@@ -295,28 +295,21 @@ func (this *Server) transport(reader io.Reader, writer io.Writer, session *proxy
 	input := ray.InboundInput()
 	output := ray.InboundOutput()
 
-	var inputFinish, outputFinish sync.Mutex
-	inputFinish.Lock()
-	outputFinish.Lock()
+	defer input.Close()
+	defer output.Release()
 
 	go func() {
 		v2reader := v2io.NewAdaptiveReader(reader)
 		defer v2reader.Release()
 
 		v2io.Pipe(v2reader, input)
-		inputFinish.Unlock()
-		input.Close()
 	}()
 
-	go func() {
-		v2writer := v2io.NewAdaptiveWriter(writer)
-		defer v2writer.Release()
+	v2writer := v2io.NewAdaptiveWriter(writer)
+	defer v2writer.Release()
 
-		v2io.Pipe(output, v2writer)
-		outputFinish.Unlock()
-		output.Release()
-	}()
-	outputFinish.Lock()
+	v2io.Pipe(output, v2writer)
+	output.Release()
 }
 
 type ServerFactory struct{}