package dialer import ( "crypto/tls" "fmt" "net" "net/url" ) func (d *Dialer) Dial() (net.Conn, error) { if d.dialURL.Scheme == "https" { return tls.Dial("tcp", d.dialURL.Host, &tls.Config{ ServerName: d.dialURL.Hostname(), InsecureSkipVerify: d.app.Config().Upstream.InsecureTLS, }) } return net.Dial("tcp", d.dialURL.Host) } func (d *Dialer) UpstreamURL() (*url.URL, error) { if d.app.Config().Upstream.URL == "" { return nil, fmt.Errorf( "%w: %w (%s)", ErrDialer, ErrUpstreamURL, "upstream URL is empty", ) } u, err := url.Parse(d.app.Config().Upstream.URL) if err != nil { return nil, fmt.Errorf( "%w: %w (%w)", ErrDialer, ErrUpstreamURL, err, ) } return u, nil }