|
|
@@ -82,7 +82,7 @@ func (handler *VMessInboundHandler) HandleConnection(connection net.Conn) error
|
|
|
readFinish.Lock()
|
|
|
writeFinish.Lock()
|
|
|
|
|
|
- go handleInput(request, connection, input, readFinish)
|
|
|
+ go handleInput(request, connection, input, &readFinish)
|
|
|
|
|
|
responseKey := md5.Sum(request.RequestKey[:])
|
|
|
responseIV := md5.Sum(request.RequestIV[:])
|
|
|
@@ -100,7 +100,7 @@ func (handler *VMessInboundHandler) HandleConnection(connection net.Conn) error
|
|
|
if data, open := <-output; open {
|
|
|
buffer = append(buffer, data...)
|
|
|
responseWriter.Write(buffer)
|
|
|
- go handleOutput(request, responseWriter, output, writeFinish)
|
|
|
+ go handleOutput(request, responseWriter, output, &writeFinish)
|
|
|
writeFinish.Lock()
|
|
|
}
|
|
|
|
|
|
@@ -112,7 +112,7 @@ func (handler *VMessInboundHandler) HandleConnection(connection net.Conn) error
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func handleInput(request *protocol.VMessRequest, reader io.Reader, input chan<- []byte, finish sync.Mutex) {
|
|
|
+func handleInput(request *protocol.VMessRequest, reader io.Reader, input chan<- []byte, finish *sync.Mutex) {
|
|
|
defer close(input)
|
|
|
defer finish.Unlock()
|
|
|
|
|
|
@@ -125,7 +125,7 @@ func handleInput(request *protocol.VMessRequest, reader io.Reader, input chan<-
|
|
|
v2net.ReaderToChan(input, requestReader)
|
|
|
}
|
|
|
|
|
|
-func handleOutput(request *protocol.VMessRequest, writer io.Writer, output <-chan []byte, finish sync.Mutex) {
|
|
|
+func handleOutput(request *protocol.VMessRequest, writer io.Writer, output <-chan []byte, finish *sync.Mutex) {
|
|
|
v2net.ChanToWriter(writer, output)
|
|
|
finish.Unlock()
|
|
|
}
|