diff --git a/client/control.go b/client/control.go index 4b458a7b..409f7941 100644 --- a/client/control.go +++ b/client/control.go @@ -16,7 +16,6 @@ package client import ( "crypto/tls" - "fmt" "io" "runtime/debug" "sync" @@ -182,7 +181,7 @@ func (ctl *Control) connectServer() (conn frpNet.Conn, err error) { InsecureSkipVerify: true, } } - conn, err = frpNet.ConnectServerByProxy(g.GlbClientCfg.HttpProxy, g.GlbClientCfg.Protocol, + conn, err = frpNet.ConnectServerByProxyWithTLS(g.GlbClientCfg.HttpProxy, g.GlbClientCfg.Protocol, newAddress(g.GlbClientCfg.ServerAddr, g.GlbClientCfg.ServerPort), tlsConfig) if err != nil { ctl.Warn("start new connection to server error: %v", err) diff --git a/client/service.go b/client/service.go index 7fed2dc2..f0fea07e 100644 --- a/client/service.go +++ b/client/service.go @@ -170,15 +170,15 @@ func (svr *Service) login() (conn frpNet.Conn, session *fmux.Session, err error) InsecureSkipVerify: true, } } - conn, err = frpNet.ConnectServerByProxy(g.GlbClientCfg.HttpProxy, g.GlbClientCfg.Protocol, + conn, err = frpNet.ConnectServerByProxyWithTLS(g.GlbClientCfg.HttpProxy, g.GlbClientCfg.Protocol, newAddress(g.GlbClientCfg.ServerAddr, g.GlbClientCfg.ServerPort), tlsConfig) if err != nil { return } defer func() { - if err != nil { - conn.Close() + if err != nil && conn != nil { + _ = conn.Close() } }()