|
|
@@ -47,12 +47,15 @@ func (vconn *FreedomConnection) Start(ray core.OutboundRay) error {
|
|
|
go dumpInput(conn, input, writeFinish)
|
|
|
go dumpOutput(conn, output, readFinish)
|
|
|
|
|
|
- <-writeFinish
|
|
|
- if tcpConn, ok := conn.(*net.TCPConn); ok {
|
|
|
- tcpConn.CloseWrite()
|
|
|
- }
|
|
|
- <-readFinish
|
|
|
- conn.Close()
|
|
|
+ go func() {
|
|
|
+ <-writeFinish
|
|
|
+ if tcpConn, ok := conn.(*net.TCPConn); ok {
|
|
|
+ tcpConn.CloseWrite()
|
|
|
+ }
|
|
|
+ <-readFinish
|
|
|
+ conn.Close()
|
|
|
+ }()
|
|
|
+
|
|
|
return nil
|
|
|
}
|
|
|
|