prox5/mr_worldwide.go

43 lines
1.2 KiB
Go
Raw Normal View History

package prox5
import (
"context"
"crypto/tls"
"net"
"net/http"
)
// GetHTTPClient retrieves a pointer to an http.Client powered by MysteryDialer.
2022-09-22 23:28:28 +00:00
func (pe *Swamp) GetHTTPClient() *http.Client {
// var htp func(*http.Request) (*url.URL, error)
var dctx func(ctx context.Context, network string, addr string) (net.Conn, error)
// if httun, htok := pe.GetHTTPTunnel(); htok {
// httprox, uerr := url.Parse("http://" + httun.Endpoint)
// if uerr == nil {
// htp = http.ProxyURL(httprox)
// }
// }
// if htp == nil {
dctx = pe.DialContext
// }
return &http.Client{
Transport: &http.Transport{
// Proxy: htp,
DialContext: dctx,
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
2022-06-26 02:51:42 +00:00
TLSHandshakeTimeout: pe.GetServerTimeout(),
DisableKeepAlives: true,
DisableCompression: false,
MaxIdleConnsPerHost: 5,
2022-06-26 02:51:42 +00:00
IdleConnTimeout: pe.GetServerTimeout(),
ResponseHeaderTimeout: pe.GetServerTimeout(),
},
2022-06-26 02:51:42 +00:00
Timeout: pe.GetServerTimeout(),
}
}
// RoundTrip is Mr. WorldWide. Obviously. See: https://pkg.go.dev/net/http#RoundTripper
2022-09-22 23:28:28 +00:00
func (pe *Swamp) RoundTrip(req *http.Request) (*http.Response, error) {
2022-06-26 02:51:42 +00:00
return pe.GetHTTPClient().Do(req)
}