diff --git a/proxy/socks/protocol/udp.go b/proxy/socks/protocol/udp.go index b87a59aed..88484e32f 100644 --- a/proxy/socks/protocol/udp.go +++ b/proxy/socks/protocol/udp.go @@ -23,25 +23,25 @@ func (request *Socks5UDPRequest) Destination() v2net.Destination { } func (request *Socks5UDPRequest) Bytes(buffer []byte) []byte { - if buffer == nil { - buffer = make([]byte, 0, 2*1024) - } - buffer = append(buffer, 0, 0, request.Fragment) - switch { - case request.Address.IsIPv4(): - buffer = append(buffer, AddrTypeIPv4) - buffer = append(buffer, request.Address.IP()...) - case request.Address.IsIPv6(): - buffer = append(buffer, AddrTypeIPv6) - buffer = append(buffer, request.Address.IP()...) - case request.Address.IsDomain(): - buffer = append(buffer, AddrTypeDomain) - buffer = append(buffer, byte(len(request.Address.Domain()))) - buffer = append(buffer, []byte(request.Address.Domain())...) - } - buffer = append(buffer, request.Address.PortBytes()...) - buffer = append(buffer, request.Data...) - return buffer + if buffer == nil { + buffer = make([]byte, 0, 2*1024) + } + buffer = append(buffer, 0, 0, request.Fragment) + switch { + case request.Address.IsIPv4(): + buffer = append(buffer, AddrTypeIPv4) + buffer = append(buffer, request.Address.IP()...) + case request.Address.IsIPv6(): + buffer = append(buffer, AddrTypeIPv6) + buffer = append(buffer, request.Address.IP()...) + case request.Address.IsDomain(): + buffer = append(buffer, AddrTypeDomain) + buffer = append(buffer, byte(len(request.Address.Domain()))) + buffer = append(buffer, []byte(request.Address.Domain())...) + } + buffer = append(buffer, request.Address.PortBytes()...) + buffer = append(buffer, request.Data...) + return buffer } func ReadUDPRequest(packet []byte) (request Socks5UDPRequest, err error) { diff --git a/proxy/socks/udp.go b/proxy/socks/udp.go index da655fcc0..e7400cbf4 100644 --- a/proxy/socks/udp.go +++ b/proxy/socks/udp.go @@ -63,8 +63,8 @@ func (server *SocksServer) handlePacket(conn *net.UDPConn, packet v2net.Packet, close(ray.InboundInput()) if data, ok := <-ray.InboundOutput(); ok { - request.Data = data - udpMessage := request.Bytes(nil) + request.Data = data + udpMessage := request.Bytes(nil) nBytes, err := conn.WriteToUDP(udpMessage, clientAddr) } }