summaryrefslogtreecommitdiff
path: root/vendor/github.com/wybiral/torgo/client.go
diff options
context:
space:
mode:
authordavy <davy.wybiral@gmail.com>2019-07-03 16:55:03 -0500
committerdavy <davy.wybiral@gmail.com>2019-07-03 16:55:03 -0500
commit442e3c6dcf35cc1ca508e617f94198637e761bc8 (patch)
tree8d6b6210ce98385180766fa14984e2c47f779050 /vendor/github.com/wybiral/torgo/client.go
parent53bc0c19fadcfb7ae9a608ed1f9f6268d1670368 (diff)
dep ensurev0.1.0
Diffstat (limited to 'vendor/github.com/wybiral/torgo/client.go')
-rw-r--r--vendor/github.com/wybiral/torgo/client.go23
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
+}