|
|
@@ -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) {
|