Files
fasthttp/fasthttpproxy/proxy_env.go
T
newacorn 6ed7f6bbf7 Add a multifunctional Dialer struct. (#1829)
Add a multifunctional `Dialer` struct and reimplement the function API

Reimplement the existing function interfaces of the fasthttpproxy package through Dialer. Refactor Dialer.GetDialFunc to ensure that its performance is comparable to the original function interfaces when the proxy does not change with the request address.
2024-08-24 12:46:01 +02:00

40 lines
1.0 KiB
Go

package fasthttpproxy
import (
"time"
"github.com/valyala/fasthttp"
)
const (
httpsScheme = "https"
httpScheme = "http"
)
// FasthttpProxyHTTPDialer returns a fasthttp.DialFunc that dials using
// the env(HTTP_PROXY, HTTPS_PROXY and NO_PROXY) configured HTTP proxy.
//
// Example usage:
//
// c := &fasthttp.Client{
// Dial: fasthttpproxy.FasthttpProxyHTTPDialer(),
// }
func FasthttpProxyHTTPDialer() fasthttp.DialFunc {
return FasthttpProxyHTTPDialerTimeout(0)
}
// FasthttpProxyHTTPDialerTimeout returns a fasthttp.DialFunc that dials using
// the env(HTTP_PROXY, HTTPS_PROXY and NO_PROXY) configured HTTP proxy using the given timeout.
// The timeout parameter determines both the dial timeout and the CONNECT request timeout.
//
// Example usage:
//
// c := &fasthttp.Client{
// Dial: fasthttpproxy.FasthttpProxyHTTPDialerTimeout(time.Second * 2),
// }
func FasthttpProxyHTTPDialerTimeout(timeout time.Duration) fasthttp.DialFunc {
d := Dialer{Timeout: timeout, ConnectTimeout: timeout}
dialFunc, _ := d.GetDialFunc(true)
return dialFunc
}