Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

grpcutil: Convert Resolver into concrete type #105

Merged
merged 1 commit into from
Jan 4, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
* [CHANGE] Memberlist: changed probe interval from `1s` to `5s` and probe timeout from `500ms` to `2s`. #90
* [CHANGE] Remove package `math`. #104
* [CHANGE] time: Remove time package. #103
* [CHANGE] grpcutil: Convert Resolver into concrete type. #105
* [ENHANCEMENT] Add middleware package. #38
* [ENHANCEMENT] Add the ring package #45
* [ENHANCEMENT] Add limiter package. #41
Expand Down
14 changes: 7 additions & 7 deletions grpcutil/dns_resolver.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,21 +29,21 @@ var (

// NewDNSResolverWithFreq creates a DNS Resolver that can resolve DNS names, and
// create watchers that poll the DNS server using the frequency set by freq.
func NewDNSResolverWithFreq(freq time.Duration, logger log.Logger) (Resolver, error) {
return &dnsResolver{
func NewDNSResolverWithFreq(freq time.Duration, logger log.Logger) (*Resolver, error) {
return &Resolver{
logger: logger,
freq: freq,
}, nil
}

// NewDNSResolver creates a DNS Resolver that can resolve DNS names, and create
// watchers that poll the DNS server using the default frequency defined by defaultFreq.
func NewDNSResolver(logger log.Logger) (Resolver, error) {
func NewDNSResolver(logger log.Logger) (*Resolver, error) {
return NewDNSResolverWithFreq(defaultFreq, logger)
}

// dnsResolver handles name resolution for names following the DNS scheme
type dnsResolver struct {
// Resolver handles name resolution for names following the DNS scheme.
type Resolver struct {
logger log.Logger
// frequency of polling the DNS server that the watchers created by this resolver will use.
freq time.Duration
Expand Down Expand Up @@ -102,7 +102,7 @@ func parseTarget(target string) (host, port string, err error) {
}

// Resolve creates a watcher that watches the name resolution of the target.
func (r *dnsResolver) Resolve(target string) (Watcher, error) {
func (r *Resolver) Resolve(target string) (Watcher, error) {
host, port, err := parseTarget(target)
if err != nil {
return nil, err
Expand Down Expand Up @@ -131,7 +131,7 @@ func (r *dnsResolver) Resolve(target string) (Watcher, error) {

// dnsWatcher watches for the name resolution update for a specific target
type dnsWatcher struct {
pstibrany marked this conversation as resolved.
Show resolved Hide resolved
r *dnsResolver
r *Resolver
logger log.Logger
host string
port string
Expand Down
6 changes: 0 additions & 6 deletions grpcutil/naming.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,6 @@ type Update struct {
Metadata interface{}
}

// Resolver creates a Watcher for a target to track its resolution changes.
type Resolver interface {
// Resolve creates a Watcher for target.
Resolve(target string) (Watcher, error)
}

// Watcher watches for the updates on the specified target.
type Watcher interface {
// Next blocks until an update or error happens. It may return one or more
Expand Down