Skip to content

Commit b69d5d4

Browse files
committed
adding some proxy validation and logs
Signed-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>
1 parent ce76dc4 commit b69d5d4

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

utils/http_proxy.go

+12-5
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,14 @@ import (
66
"bufio"
77
"context"
88
"fmt"
9-
"golang.org/x/net/proxy"
109
"net"
1110
"net/http"
1211
"net/url"
1312
"os"
13+
14+
"github.com/kubescape/go-logger"
15+
"github.com/kubescape/go-logger/helpers"
16+
"golang.org/x/net/proxy"
1417
)
1518

1619
type direct struct{}
@@ -35,10 +38,12 @@ func newHTTPProxy(uri *url.URL, forward proxy.Dialer) (proxy.Dialer, error) {
3538
s := new(httpProxy)
3639
s.host = uri.Host
3740
s.forward = forward
41+
logger.L().Info("setting proxy", helpers.String("scheme", uri.Scheme), helpers.String("host", s.host))
3842
if uri.User != nil {
3943
s.haveAuth = true
4044
s.username = uri.User.Username()
4145
s.password, _ = uri.User.Password()
46+
logger.L().Info("setting basic auth for proxy", helpers.String("username", s.username), helpers.Int("len(password)", len(s.password)))
4247
}
4348

4449
return s, nil
@@ -107,19 +112,21 @@ func GetDialer() func(context.Context, string, string) (net.Conn, error) {
107112
for _, envVar := range envVars {
108113
if httpProxy := os.Getenv(envVar); httpProxy != "" {
109114
uri, err := url.Parse(httpProxy)
110-
if err == nil {
111-
proxyURI = uri
115+
if err != nil {
116+
logger.L().Fatal("failed to parse proxy URI", helpers.Error(err))
112117
}
118+
proxyURI = uri
113119
}
114120
}
115121
// default proxy net dial
116122
proxyNetDial := proxy.FromEnvironment()
117123
// if custom URI is defined, generate proxy net dial from that
118124
if proxyURI != nil {
119125
dial, err := proxy.FromURL(proxyURI, Direct)
120-
if err == nil {
121-
proxyNetDial = dial
126+
if err != nil {
127+
logger.L().Fatal("failed to create proxy dialer", helpers.Error(err))
122128
}
129+
proxyNetDial = dial
123130
}
124131
// return dialer as a net.DialContext function
125132
return func(ctx context.Context, a, b string) (net.Conn, error) {

0 commit comments

Comments
 (0)