fix domain name resolution for router

This commit is contained in:
ginuerzh
2023-09-16 21:46:12 +08:00
parent a2115a3d38
commit 801f835e9a
4 changed files with 10 additions and 13 deletions

View File

@ -15,10 +15,7 @@ func Resolve(ctx context.Context, network, addr string, r resolver.Resolver, hos
return addr, nil
}
host, port, err := net.SplitHostPort(addr)
if err != nil {
return "", err
}
host, port, _ := net.SplitHostPort(addr)
if host == "" {
return addr, nil
}

View File

@ -155,6 +155,12 @@ func (r *Router) dial(ctx context.Context, network, address string) (conn net.Co
r.options.Logger.Debugf("dial %s/%s", address, network)
for i := 0; i < count; i++ {
address, err = Resolve(ctx, "ip", address, r.options.Resolver, r.options.HostMapper, r.options.Logger)
if err != nil {
r.options.Logger.Error(err)
break
}
var route Route
if r.options.Chain != nil {
route = r.options.Chain.Route(ctx, network, address)
@ -169,12 +175,6 @@ func (r *Router) dial(ctx context.Context, network, address string) (conn net.Co
r.options.Logger.Debugf("route(retry=%d) %s", i, buf.String())
}
address, err = Resolve(ctx, "ip", address, r.options.Resolver, r.options.HostMapper, r.options.Logger)
if err != nil {
r.options.Logger.Error(err)
break
}
if route == nil {
route = DefaultRoute
}

2
go.mod
View File

@ -2,4 +2,4 @@ module github.com/go-gost/core
go 1.18
require golang.org/x/sys v0.5.0
require golang.org/x/sys v0.6.0

4
go.sum
View File

@ -1,2 +1,2 @@
golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=