tls,trojan: optimize the default port handling

This commit is contained in:
nadoo 2021-03-21 00:08:00 +08:00
parent 93728c6378
commit 2d16870803
6 changed files with 17 additions and 19 deletions

2
go.mod
View File

@ -17,7 +17,7 @@ require (
github.com/xtaci/kcp-go/v5 v5.6.1 github.com/xtaci/kcp-go/v5 v5.6.1
golang.org/x/crypto v0.0.0-20210317152858-513c2a44f670 golang.org/x/crypto v0.0.0-20210317152858-513c2a44f670
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4 // indirect golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4 // indirect
golang.org/x/sys v0.0.0-20210319071255-635bc2c9138d // indirect golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4 // indirect
) )
// Replace dependency modules with local developing copy // Replace dependency modules with local developing copy

4
go.sum
View File

@ -153,8 +153,8 @@ golang.org/x/sys v0.0.0-20201101102859-da207088b7d1/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210319071255-635bc2c9138d h1:jbzgAvDZn8aEnytae+4ou0J0GwFZoHR0hOrTg4qH8GA= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4 h1:EZ2mChiOa8udjfp6rRmswTbtZN/QzUQp4ptM4rnjHvc=
golang.org/x/sys v0.0.0-20210319071255-635bc2c9138d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=

View File

@ -18,7 +18,7 @@ import (
) )
var ( var (
version = "0.14.0" version = "0.13.2"
config = parseConfig() config = parseConfig()
) )

View File

@ -52,13 +52,12 @@ func NewTLS(s string, d proxy.Dialer, p proxy.Proxy) (*TLS, error) {
keyFile: query.Get("key"), keyFile: query.Get("key"),
} }
if t.serverName == "" { if _, p, _ := net.SplitHostPort(t.addr); p == "" {
idx := strings.LastIndex(t.addr, ":")
if idx == -1 {
idx = len(t.addr)
t.addr = net.JoinHostPort(t.addr, "443") t.addr = net.JoinHostPort(t.addr, "443")
} }
t.serverName = t.addr[:idx]
if t.serverName == "" {
t.serverName = t.addr[:strings.LastIndex(t.addr, ":")]
} }
return t, nil return t, nil

View File

@ -58,13 +58,12 @@ func NewTrojan(s string, d proxy.Dialer, p proxy.Proxy) (*Trojan, error) {
// fallback: "127.0.0.1:80", // fallback: "127.0.0.1:80",
} }
if t.serverName == "" { if _, p, _ := net.SplitHostPort(t.addr); p == "" {
idx := strings.LastIndex(t.addr, ":")
if idx == -1 {
idx = len(t.addr)
t.addr = net.JoinHostPort(t.addr, "443") t.addr = net.JoinHostPort(t.addr, "443")
} }
t.serverName = t.addr[:idx]
if t.serverName == "" {
t.serverName = t.addr[:strings.LastIndex(t.addr, ":")]
} }
// pass // pass

View File

@ -189,13 +189,13 @@ func (p *FwdrGroup) Check() {
u, err := url.Parse(p.config.Check) u, err := url.Parse(p.config.Check)
if err != nil { if err != nil {
log.F("[group] parse check config error: %s", err) log.F("[group] parse check config error: %s, disable health checking", err)
return return
} }
addr := u.Host addr := u.Host
if strings.IndexByte(addr, ':') == -1 { if _, p, _ := net.SplitHostPort(addr); p == "" {
addr += ":80" addr = net.JoinHostPort(addr, "80")
} }
timeout := time.Duration(p.config.CheckTimeout) * time.Second timeout := time.Duration(p.config.CheckTimeout) * time.Second