mirror of https://github.com/v2ray/v2ray-core
format code
parent
8461cde710
commit
9b12ee2eb3
|
@ -23,25 +23,25 @@ func (request *Socks5UDPRequest) Destination() v2net.Destination {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (request *Socks5UDPRequest) Bytes(buffer []byte) []byte {
|
func (request *Socks5UDPRequest) Bytes(buffer []byte) []byte {
|
||||||
if buffer == nil {
|
if buffer == nil {
|
||||||
buffer = make([]byte, 0, 2*1024)
|
buffer = make([]byte, 0, 2*1024)
|
||||||
}
|
}
|
||||||
buffer = append(buffer, 0, 0, request.Fragment)
|
buffer = append(buffer, 0, 0, request.Fragment)
|
||||||
switch {
|
switch {
|
||||||
case request.Address.IsIPv4():
|
case request.Address.IsIPv4():
|
||||||
buffer = append(buffer, AddrTypeIPv4)
|
buffer = append(buffer, AddrTypeIPv4)
|
||||||
buffer = append(buffer, request.Address.IP()...)
|
buffer = append(buffer, request.Address.IP()...)
|
||||||
case request.Address.IsIPv6():
|
case request.Address.IsIPv6():
|
||||||
buffer = append(buffer, AddrTypeIPv6)
|
buffer = append(buffer, AddrTypeIPv6)
|
||||||
buffer = append(buffer, request.Address.IP()...)
|
buffer = append(buffer, request.Address.IP()...)
|
||||||
case request.Address.IsDomain():
|
case request.Address.IsDomain():
|
||||||
buffer = append(buffer, AddrTypeDomain)
|
buffer = append(buffer, AddrTypeDomain)
|
||||||
buffer = append(buffer, byte(len(request.Address.Domain())))
|
buffer = append(buffer, byte(len(request.Address.Domain())))
|
||||||
buffer = append(buffer, []byte(request.Address.Domain())...)
|
buffer = append(buffer, []byte(request.Address.Domain())...)
|
||||||
}
|
}
|
||||||
buffer = append(buffer, request.Address.PortBytes()...)
|
buffer = append(buffer, request.Address.PortBytes()...)
|
||||||
buffer = append(buffer, request.Data...)
|
buffer = append(buffer, request.Data...)
|
||||||
return buffer
|
return buffer
|
||||||
}
|
}
|
||||||
|
|
||||||
func ReadUDPRequest(packet []byte) (request Socks5UDPRequest, err error) {
|
func ReadUDPRequest(packet []byte) (request Socks5UDPRequest, err error) {
|
||||||
|
|
|
@ -63,8 +63,8 @@ func (server *SocksServer) handlePacket(conn *net.UDPConn, packet v2net.Packet,
|
||||||
close(ray.InboundInput())
|
close(ray.InboundInput())
|
||||||
|
|
||||||
if data, ok := <-ray.InboundOutput(); ok {
|
if data, ok := <-ray.InboundOutput(); ok {
|
||||||
request.Data = data
|
request.Data = data
|
||||||
udpMessage := request.Bytes(nil)
|
udpMessage := request.Bytes(nil)
|
||||||
nBytes, err := conn.WriteToUDP(udpMessage, clientAddr)
|
nBytes, err := conn.WriteToUDP(udpMessage, clientAddr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue