mirror of
https://github.com/nadoo/glider.git
synced 2025-02-23 01:15:41 +08:00
ssh: handle error in init conn (#264)
This commit is contained in:
parent
879e736f01
commit
a62674838e
2
go.mod
2
go.mod
@ -9,7 +9,7 @@ require (
|
||||
github.com/dgryski/go-rc2 v0.0.0-20150621095337-8a9021637152
|
||||
github.com/ebfe/rc2 v0.0.0-20131011165748-24b9757f5521 // indirect
|
||||
github.com/insomniacslk/dhcp v0.0.0-20210621130208-1cac67f12b1e
|
||||
github.com/klauspost/cpuid/v2 v2.0.7 // indirect
|
||||
github.com/klauspost/cpuid/v2 v2.0.8 // indirect
|
||||
github.com/klauspost/reedsolomon v1.9.12 // indirect
|
||||
github.com/mdlayher/raw v0.0.0-20210412142147-51b895745faf // indirect
|
||||
github.com/nadoo/conflag v0.2.3
|
||||
|
4
go.sum
4
go.sum
@ -50,8 +50,8 @@ github.com/klauspost/cpuid v1.2.4/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgo
|
||||
github.com/klauspost/cpuid v1.3.1 h1:5JNjFYYQrZeKRJ0734q51WCEEn2huer72Dc7K+R/b6s=
|
||||
github.com/klauspost/cpuid v1.3.1/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4=
|
||||
github.com/klauspost/cpuid/v2 v2.0.2/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
|
||||
github.com/klauspost/cpuid/v2 v2.0.7 h1:U89pAFid7wpIWvTFJnMKgU+Sabb7DLEgHI7Xt8apo3Y=
|
||||
github.com/klauspost/cpuid/v2 v2.0.7/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
|
||||
github.com/klauspost/cpuid/v2 v2.0.8 h1:bhR2mgIlno/Sfk4oUbH4sPlc83z1yGrN9bvqiq3C33I=
|
||||
github.com/klauspost/cpuid/v2 v2.0.8/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
|
||||
github.com/klauspost/reedsolomon v1.9.9/go.mod h1:O7yFFHiQwDR6b2t63KPUpccPtNdp5ADgh1gg4fd12wo=
|
||||
github.com/klauspost/reedsolomon v1.9.12 h1:EyOucRmcrLH+2hqKGdoA5SM8pwPKR6BJsf3r6zpYOA0=
|
||||
github.com/klauspost/reedsolomon v1.9.12/go.mod h1:nLvuzNvy1ZDNQW30IuMc2ZWCbiqrJgdLoUS2X8HAUVg=
|
||||
|
@ -143,18 +143,14 @@ func NewKCPDialer(s string, d proxy.Dialer) (proxy.Dialer, error) {
|
||||
|
||||
// NewKCPServer returns a kcp proxy server.
|
||||
func NewKCPServer(s string, p proxy.Proxy) (proxy.Server, error) {
|
||||
server, chain := s, ""
|
||||
if idx := strings.IndexByte(s, ','); idx != -1 {
|
||||
server, chain = s[:idx], s[idx+1:]
|
||||
}
|
||||
|
||||
k, err := NewKCP(server, nil, p)
|
||||
schemes := strings.SplitN(s, ",", 2)
|
||||
k, err := NewKCP(schemes[0], nil, p)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if chain != "" {
|
||||
k.server, err = proxy.ServerFromURL(chain, p)
|
||||
if len(schemes) > 1 {
|
||||
k.server, err = proxy.ServerFromURL(schemes[1], p)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -24,12 +24,8 @@ func init() {
|
||||
|
||||
// NewSmuxServer returns a smux transport layer before the real server.
|
||||
func NewSmuxServer(s string, p proxy.Proxy) (proxy.Server, error) {
|
||||
server, chain := s, ""
|
||||
if idx := strings.IndexByte(s, ','); idx != -1 {
|
||||
server, chain = s[:idx], s[idx+1:]
|
||||
}
|
||||
|
||||
u, err := url.Parse(server)
|
||||
schemes := strings.SplitN(s, ",", 2)
|
||||
u, err := url.Parse(schemes[0])
|
||||
if err != nil {
|
||||
log.F("[smux] parse url err: %s", err)
|
||||
return nil, err
|
||||
@ -40,8 +36,8 @@ func NewSmuxServer(s string, p proxy.Proxy) (proxy.Server, error) {
|
||||
addr: u.Host,
|
||||
}
|
||||
|
||||
if chain != "" {
|
||||
m.server, err = proxy.ServerFromURL(chain, p)
|
||||
if len(schemes) > 1 {
|
||||
m.server, err = proxy.ServerFromURL(schemes[1], p)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -116,7 +116,9 @@ func (s *SSH) Dial(network, addr string) (net.Conn, error) {
|
||||
return c, nil
|
||||
}
|
||||
s.sshConn.Close()
|
||||
s.initConn()
|
||||
if err := s.initConn(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return ssh.NewClient(s.sshConn, s.sshChan, s.sshReq).Dial(network, addr)
|
||||
}
|
||||
|
||||
|
@ -81,12 +81,8 @@ func NewTLSDialer(s string, d proxy.Dialer) (proxy.Dialer, error) {
|
||||
|
||||
// NewTLSServer returns a tls transport layer before the real server.
|
||||
func NewTLSServer(s string, p proxy.Proxy) (proxy.Server, error) {
|
||||
server, chain := s, ""
|
||||
if idx := strings.IndexByte(s, ','); idx != -1 {
|
||||
server, chain = s[:idx], s[idx+1:]
|
||||
}
|
||||
|
||||
t, err := NewTLS(server, nil, p)
|
||||
schemes := strings.SplitN(s, ",", 2)
|
||||
t, err := NewTLS(schemes[0], nil, p)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -106,8 +102,8 @@ func NewTLSServer(s string, p proxy.Proxy) (proxy.Server, error) {
|
||||
MinVersion: stdtls.VersionTLS12,
|
||||
}
|
||||
|
||||
if chain != "" {
|
||||
t.server, err = proxy.ServerFromURL(chain, p)
|
||||
if len(schemes) > 1 {
|
||||
t.server, err = proxy.ServerFromURL(schemes[1], p)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -17,18 +17,14 @@ func init() {
|
||||
|
||||
// NewUnixServer returns a unix domain socket server.
|
||||
func NewUnixServer(s string, p proxy.Proxy) (proxy.Server, error) {
|
||||
server, chain := s, ""
|
||||
if idx := strings.IndexByte(s, ','); idx != -1 {
|
||||
server, chain = s[:idx], s[idx+1:]
|
||||
}
|
||||
|
||||
unix, err := NewUnix(server, nil, p)
|
||||
schemes := strings.SplitN(s, ",", 2)
|
||||
unix, err := NewUnix(schemes[0], nil, p)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if chain != "" {
|
||||
unix.server, err = proxy.ServerFromURL(chain, p)
|
||||
if len(schemes) > 1 {
|
||||
unix.server, err = proxy.ServerFromURL(schemes[1], p)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -18,18 +18,14 @@ func init() {
|
||||
|
||||
// NewWSServer returns a ws transport server.
|
||||
func NewWSServer(s string, p proxy.Proxy) (proxy.Server, error) {
|
||||
server, chain := s, ""
|
||||
if idx := strings.IndexByte(s, ','); idx != -1 {
|
||||
server, chain = s[:idx], s[idx+1:]
|
||||
}
|
||||
|
||||
w, err := NewWS(server, nil, p)
|
||||
schemes := strings.SplitN(s, ",", 2)
|
||||
w, err := NewWS(schemes[0], nil, p)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if chain != "" {
|
||||
w.server, err = proxy.ServerFromURL(chain, p)
|
||||
if len(schemes) > 1 {
|
||||
w.server, err = proxy.ServerFromURL(schemes[1], p)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user