all: use private resolver for private IP address

These queries could not be resolved by Control D upstreams, so it's
useless and less performance to send them to servers.
This commit is contained in:
Cuong Manh Le
2023-11-02 21:53:39 +07:00
committed by Cuong Manh Le
parent 3fea92c8b1
commit 4816a09e3a
3 changed files with 96 additions and 0 deletions

View File

@@ -24,6 +24,8 @@ const (
ResolverTypeOS = "os"
// ResolverTypeLegacy specifies legacy resolver.
ResolverTypeLegacy = "legacy"
// ResolverTypePrivate is like ResolverTypeOS, but use for local resolver only.
ResolverTypePrivate = "private"
)
var bootstrapDNS = "76.76.2.0"
@@ -61,6 +63,8 @@ func NewResolver(uc *UpstreamConfig) (Resolver, error) {
return or, nil
case ResolverTypeLegacy:
return &legacyResolver{uc: uc}, nil
case ResolverTypePrivate:
return NewPrivateResolver(), nil
}
return nil, fmt.Errorf("%w: %s", errUnknownResolver, typ)
}