1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2026-04-27 07:59:08 -04:00

simplify udp handling

This commit is contained in:
V2Ray
2015-10-02 15:32:26 +02:00
parent df963c99ca
commit 76563cb7c7
8 changed files with 48 additions and 148 deletions

View File

@@ -29,6 +29,12 @@ func (vconn *FreedomConnection) Start(ray core.OutboundRay) error {
return log.Error("Freedom: Failed to open connection: %s : %v", vconn.packet.Destination().String(), err)
}
input := ray.OutboundInput()
output := ray.OutboundOutput()
var readMutex, writeMutex sync.Mutex
readMutex.Lock()
writeMutex.Lock()
if chunk := vconn.packet.Chunk(); chunk != nil {
conn.Write(chunk)
}
@@ -37,16 +43,11 @@ func (vconn *FreedomConnection) Start(ray core.OutboundRay) error {
if ray != nil {
close(ray.OutboundOutput())
}
return nil
writeMutex.Unlock()
} else {
go dumpInput(conn, input, &writeMutex)
}
input := ray.OutboundInput()
output := ray.OutboundOutput()
var readMutex, writeMutex sync.Mutex
readMutex.Lock()
writeMutex.Lock()
go dumpInput(conn, input, &writeMutex)
go dumpOutput(conn, output, &readMutex)
go func() {