gomitmproxy
gomitmproxy copied to clipboard
Feat request: Please allow us to have access to transport config
gomitmproxy.NewProxy starts out as follows:
// NewProxy creates a new instance of the Proxy
func NewProxy(config Config) *Proxy {
proxy := &Proxy{
Config: config,
transport: &http.Transport{
// This forces http.Transport to not upgrade requests to HTTP/2
// TODO: Remove when HTTP/2 can be supported
TLSNextProto: make(map[string]func(string, *tls.Conn) http.RoundTripper),
Proxy: http.ProxyFromEnvironment,
...
The Proxy: http.ProxyFromEnvironment is what affects me specifically. I am using an upstream proxy, and having to os.Setenv... to make it work is very inelegant:
os.Setenv("ALL_PROXY", upstreamProxy)
os.Setenv("HTTP_PROXY", upstreamProxy)
os.Setenv("HTTPS_PROXY", upstreamProxy)
fmt.Println("Upstream Proxy =", upstreamProxy)
Being able to pass this in, perhaps via the Config would be amazing. I would be happy to make a PR, please suggest if can be added to Config (maybe simple/non-breaking) or should be done some other way.
Thank you.
Makes sense, thank you!
I'd suggest doing it the following way:
- Add an optional
ProxyDialer proxy.Dialerfield toConfig. - When creating the transport check use it OR use
http.ProxyFromEnvironmentif it'snil. Please explain this logic in the field comment.