aboutsummaryrefslogtreecommitdiff
path: root/util/proxy.go
diff options
context:
space:
mode:
Diffstat (limited to 'util/proxy.go')
-rw-r--r--util/proxy.go40
1 files changed, 21 insertions, 19 deletions
diff --git a/util/proxy.go b/util/proxy.go
index 0f4a648..daa90b5 100644
--- a/util/proxy.go
+++ b/util/proxy.go
@@ -9,27 +9,11 @@ import (
"github.com/FChannel0/FChannel-Server/config"
)
-func RouteProxy(req *http.Request) (*http.Response, error) {
- var proxyType = GetPathProxyType(req.URL.Host)
-
- if proxyType == "tor" {
- proxyUrl, err := url.Parse("socks5://" + config.TorProxy)
- if err != nil {
- return nil, err
- }
-
- proxyTransport := &http.Transport{Proxy: http.ProxyURL(proxyUrl)}
- client := &http.Client{Transport: proxyTransport, Timeout: time.Second * 15}
- return client.Do(req)
- }
-
- return http.DefaultClient.Do(req)
-}
-
func GetPathProxyType(path string) string {
if config.TorProxy != "" {
re := regexp.MustCompile(`(http://|http://)?(www.)?\w+\.onion`)
onion := re.MatchString(path)
+
if onion {
return "tor"
}
@@ -40,17 +24,35 @@ func GetPathProxyType(path string) string {
func MediaProxy(url string) string {
re := regexp.MustCompile("(.+)?" + config.Domain + "(.+)?")
-
if re.MatchString(url) {
return url
}
re = regexp.MustCompile("(.+)?\\.onion(.+)?")
-
if re.MatchString(url) {
return url
}
config.MediaHashs[HashMedia(url)] = url
+
return "/api/media?hash=" + HashMedia(url)
}
+
+func RouteProxy(req *http.Request) (*http.Response, error) {
+ var proxyType = GetPathProxyType(req.URL.Host)
+
+ if proxyType == "tor" {
+ proxyUrl, err := url.Parse("socks5://" + config.TorProxy)
+
+ if err != nil {
+ return nil, MakeError(err, "RouteProxy")
+ }
+
+ proxyTransport := &http.Transport{Proxy: http.ProxyURL(proxyUrl)}
+ client := &http.Client{Transport: proxyTransport, Timeout: time.Second * 15}
+
+ return client.Do(req)
+ }
+
+ return http.DefaultClient.Do(req)
+}