由新的udp架构重新设计udp分离信道传输方式和vless v1协议并初步实现代码

This commit is contained in:
hahahrfool
2022-04-11 18:47:35 +08:00
parent 6dca31545b
commit c5ab5a201c
13 changed files with 590 additions and 345 deletions

17
main.go
View File

@@ -1326,7 +1326,22 @@ func dialClient_andRelay(iics incomingInserverConnState, targetAddr netLayer.Add
atomic.AddInt32(&activeConnectionCount, 1)
netLayer.RelayUDP(udp_wrc, udp_wlc, &allDownloadBytesSinceStart, &allUploadBytesSinceStart)
if client.IsUDP_MultiChannel() {
utils.Debug("Relaying UDP with MultiChannel")
netLayer.RelayUDP_separate(udp_wrc, udp_wlc, &allDownloadBytesSinceStart, &allUploadBytesSinceStart, func(raddr netLayer.Addr) netLayer.MsgConn {
_, udp_wrc, _, _, result := dialClient(targetAddr, client, iics.baseLocalConn, nil, "", false)
if result == 0 {
return udp_wrc
}
return nil
})
} else {
netLayer.RelayUDP(udp_wrc, udp_wlc, &allDownloadBytesSinceStart, &allUploadBytesSinceStart)
}
atomic.AddInt32(&activeConnectionCount, -1)