summaryrefslogtreecommitdiff
path: root/vendor/github.com/wybiral/torgo/client.go
diff options
context:
space:
mode:
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
+}