diff options
Diffstat (limited to 'vendor/github.com/wybiral/torgo/client.go')
| -rw-r--r-- | vendor/github.com/wybiral/torgo/client.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/vendor/github.com/wybiral/torgo/client.go b/vendor/github.com/wybiral/torgo/client.go new file mode 100644 index 0000000..52d7f86 --- /dev/null +++ b/vendor/github.com/wybiral/torgo/client.go @@ -0,0 +1,23 @@ +package torgo + +import ( + "net/http" + "net/url" + + "golang.org/x/net/proxy" +) + +// NewClient return new HTTP client that uses a Tor SOCKS proxy. +// `addr` is the host:port address of SOCKS proxy (usually "127.0.0.1:9050") +func NewClient(addr string) (*http.Client, error) { + u, err := url.Parse("socks5://" + addr) + if err != nil { + return nil, err + } + d, err := proxy.FromURL(u, proxy.Direct) + if err != nil { + return nil, err + } + t := &http.Transport{Dial: d.Dial} + return &http.Client{Transport: t}, nil +} |
