diff --git a/proxy/socks/protocol/udp.go b/proxy/socks/protocol/udp.go index 1af5e970..8ed8ca4a 100644 --- a/proxy/socks/protocol/udp.go +++ b/proxy/socks/protocol/udp.go @@ -27,14 +27,14 @@ func (request *Socks5UDPRequest) Write(buffer *alloc.Buffer) { buffer.AppendBytes(0, 0, request.Fragment) switch { case request.Address.IsIPv4(): - buffer.AppendBytes(AddrTypeIPv4).Append(request.Address.IP()) + buffer.AppendBytes(AddrTypeIPv4).Append(request.Address.IP()) case request.Address.IsIPv6(): - buffer.AppendBytes(AddrTypeIPv6).Append(request.Address.IP()) + buffer.AppendBytes(AddrTypeIPv6).Append(request.Address.IP()) case request.Address.IsDomain(): - buffer.AppendBytes(AddrTypeDomain, byte(len(request.Address.Domain()))).Append([]byte(request.Address.Domain())) + buffer.AppendBytes(AddrTypeDomain, byte(len(request.Address.Domain()))).Append([]byte(request.Address.Domain())) } - buffer.Append(request.Address.PortBytes()) - buffer.Append(request.Data.Value) + buffer.Append(request.Address.PortBytes()) + buffer.Append(request.Data.Value) } func ReadUDPRequest(packet []byte) (request Socks5UDPRequest, err error) { diff --git a/proxy/socks/udp.go b/proxy/socks/udp.go index 65d88c68..e86652c0 100644 --- a/proxy/socks/udp.go +++ b/proxy/socks/udp.go @@ -78,12 +78,12 @@ func (server *SocksServer) handlePacket(conn *net.UDPConn, packet v2net.Packet, Data: data, } log.Info("Writing back UDP response with %d bytes from %s to %s", data.Len(), targetAddr.String(), clientAddr.String()) - - udpMessage := alloc.NewSmallBuffer().Clear() - response.Write(udpMessage) + + udpMessage := alloc.NewSmallBuffer().Clear() + response.Write(udpMessage) nBytes, err := conn.WriteToUDP(udpMessage.Value, clientAddr) - udpMessage.Release() + udpMessage.Release() response.Data.Release() if err != nil { log.Error("Socks failed to write UDP message (%d bytes) to %s: %v", nBytes, clientAddr.String(), err)