MCPcopy
hub / github.com/golang/net / SOCKS5

Function SOCKS5

proxy/socks5.go:17–42  ·  view source on GitHub ↗

SOCKS5 returns a Dialer that makes SOCKSv5 connections to the given address with an optional username and password. See RFC 1928 and RFC 1929.

(network, address string, auth *Auth, forward Dialer)

Source from the content-addressed store, hash-verified

15// address with an optional username and password.
16// See RFC 1928 and RFC 1929.
17func SOCKS5(network, address string, auth *Auth, forward Dialer) (Dialer, error) {
18 d := socks.NewDialer(network, address)
19 if forward != nil {
20 if f, ok := forward.(ContextDialer); ok {
21 d.ProxyDial = func(ctx context.Context, network string, address string) (net.Conn, error) {
22 return f.DialContext(ctx, network, address)
23 }
24 } else {
25 d.ProxyDial = func(ctx context.Context, network string, address string) (net.Conn, error) {
26 return dialContext(ctx, forward, network, address)
27 }
28 }
29 }
30 if auth != nil {
31 up := socks.UsernamePassword{
32 Username: auth.User,
33 Password: auth.Password,
34 }
35 d.AuthMethods = []socks.AuthMethod{
36 socks.AuthMethodNotRequired,
37 socks.AuthMethodUsernamePassword,
38 }
39 d.Authenticate = up.Authenticate
40 }
41 return d, nil
42}

Callers 2

FromURLFunction · 0.85
TestSOCKS5Function · 0.85

Calls 3

NewDialerFunction · 0.92
dialContextFunction · 0.85
DialContextMethod · 0.65

Tested by 1

TestSOCKS5Function · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…