From 580dec5b89215310ce34341e11ff17fe38bdb63a Mon Sep 17 00:00:00 2001 From: FChannel <> Date: Sun, 8 May 2022 14:57:40 -0700 Subject: more cleanup, logging and error logging everywhere things are mostly in place can work on "features" and polish --- util/proxy.go | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) (limited to 'util/proxy.go') 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) +} -- cgit v1.2.3