| 1234567891011121314151617181920212223242526272829303132333435363738 | 
							- package protocol
 
- import (
 
- 	"io"
 
- 	"v2ray.com/core/common/errors"
 
- 	v2net "v2ray.com/core/common/net"
 
- )
 
- var (
 
- 	Socks4Downgrade = errors.New("Downgraded to Socks 4.")
 
- )
 
- type Socks4AuthenticationRequest struct {
 
- 	Version byte
 
- 	Command byte
 
- 	Port    v2net.Port
 
- 	IP      [4]byte
 
- }
 
- type Socks4AuthenticationResponse struct {
 
- 	result byte
 
- 	port   uint16
 
- 	ip     []byte
 
- }
 
- func NewSocks4AuthenticationResponse(result byte, port v2net.Port, ip []byte) *Socks4AuthenticationResponse {
 
- 	return &Socks4AuthenticationResponse{
 
- 		result: result,
 
- 		port:   port.Value(),
 
- 		ip:     ip,
 
- 	}
 
- }
 
- func (r *Socks4AuthenticationResponse) Write(writer io.Writer) {
 
- 	writer.Write([]byte{
 
- 		byte(0x00), r.result, byte(r.port >> 8), byte(r.port),
 
- 		r.ip[0], r.ip[1], r.ip[2], r.ip[3]})
 
- }
 
 
  |