Refactor: Shadowsocks & Trojan UDP FullCone NAT

https://t.me/projectXray/95704
This commit is contained in:
RPRX 2020-12-23 13:06:21 +00:00 committed by GitHub
parent 4140ed7ab0
commit 8f8f7dd66f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 234 additions and 44 deletions

View file

@ -256,6 +256,8 @@ func (s *Server) handleUDPPayload(ctx context.Context, clientReader *PacketReade
inbound := session.InboundFromContext(ctx)
user := inbound.User
var dest net.Destination
for {
select {
case <-ctx.Done():
@ -278,8 +280,12 @@ func (s *Server) handleUDPPayload(ctx context.Context, clientReader *PacketReade
})
newError("tunnelling request to ", p.Target).WriteToLog(session.ExportIDToError(ctx))
if dest.Network == 0 {
dest = p.Target // JUST FOLLOW THE FIREST PACKET
}
for _, b := range p.Buffer {
udpServer.Dispatch(ctx, p.Target, b)
udpServer.Dispatch(ctx, dest, b)
}
}
}