MCPcopy Index your code
hub / github.com/cloudflare/cloudflared / NewRequest

Function NewRequest

socks/request.go:75–99  ·  view source on GitHub ↗

NewRequest creates a new request from the connection data stream

(bufConn io.Reader)

Source from the content-addressed store, hash-verified

73
74// NewRequest creates a new request from the connection data stream
75func NewRequest(bufConn io.Reader) (*Request, error) {
76 // Read the version byte
77 header := []byte{0, 0, 0}
78 if _, err := io.ReadAtLeast(bufConn, header, 3); err != nil {
79 return nil, fmt.Errorf("Failed to get command version: %v", err)
80 }
81
82 // ensure compatibility
83 if header[0] != socks5Version {
84 return nil, fmt.Errorf("Unsupported command version: %v", header[0])
85 }
86
87 // Read in the destination address
88 dest, err := readAddrSpec(bufConn)
89 if err != nil {
90 return nil, err
91 }
92
93 return &Request{
94 Version: socks5Version,
95 Command: header[1],
96 DestAddr: dest,
97 bufConn: bufConn,
98 }, nil
99}
100
101func sendReply(w io.Writer, resp uint8, addr *AddrSpec) error {
102 var addrType uint8

Callers 2

createRequestFunction · 0.85
ServeMethod · 0.85

Calls 2

readAddrSpecFunction · 0.85
ErrorfMethod · 0.80

Tested by 1

createRequestFunction · 0.68