| 
					
				 | 
			
			
				@@ -23,26 +23,18 @@ func (request *Socks5UDPRequest) Destination() v2net.Destination { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return v2net.NewUDPDestination(request.Address) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-func (request *Socks5UDPRequest) Bytes(buffer []byte) []byte { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if buffer == nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		buffer = make([]byte, 0, 2*1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	buffer = append(buffer, 0, 0, request.Fragment) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (request *Socks5UDPRequest) Write(buffer *alloc.Buffer) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	buffer.AppendBytes(0, 0, request.Fragment) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	switch { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	case request.Address.IsIPv4(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		buffer = append(buffer, AddrTypeIPv4) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		buffer = append(buffer, request.Address.IP()...) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  buffer.AppendBytes(AddrTypeIPv4).Append(request.Address.IP()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	case request.Address.IsIPv6(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		buffer = append(buffer, AddrTypeIPv6) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		buffer = append(buffer, request.Address.IP()...) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  buffer.AppendBytes(AddrTypeIPv6).Append(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.AppendBytes(AddrTypeDomain, byte(len(request.Address.Domain()))).Append([]byte(request.Address.Domain())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	buffer = append(buffer, request.Address.PortBytes()...) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	buffer = append(buffer, request.Data.Value...) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	return buffer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  buffer.Append(request.Address.PortBytes()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  buffer.Append(request.Data.Value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func ReadUDPRequest(packet []byte) (request Socks5UDPRequest, err error) { 
			 |