net/dnsclient_unix: rename racer to result

This commit is contained in:
jfbus 2019-03-26 19:20:25 +01:00
parent 2fb6da5d87
commit d481acfb4c
1 changed files with 20 additions and 20 deletions

View File

@ -569,33 +569,33 @@ func (r *Resolver) goLookupIPCNAMEOrder(ctx context.Context, name string, order
resolvConf.mu.RLock() resolvConf.mu.RLock()
conf := resolvConf.dnsConfig conf := resolvConf.dnsConfig
resolvConf.mu.RUnlock() resolvConf.mu.RUnlock()
type racer struct { type result struct {
p dnsmessage.Parser p dnsmessage.Parser
server string server string
error error
} }
lane := make(chan racer, 1) lane := make(chan result, 1)
qtypes := [...]dnsmessage.Type{dnsmessage.TypeA, dnsmessage.TypeAAAA} qtypes := [...]dnsmessage.Type{dnsmessage.TypeA, dnsmessage.TypeAAAA}
var queryFn func(fqdn string, qtype dnsmessage.Type) var queryFn func(fqdn string, qtype dnsmessage.Type)
var responseFn func(fqdn string, qtype dnsmessage.Type) racer var responseFn func(fqdn string, qtype dnsmessage.Type) result
if conf.singleRequest { if conf.singleRequest {
queryFn = func(fqdn string, qtype dnsmessage.Type) {} queryFn = func(fqdn string, qtype dnsmessage.Type) {}
responseFn = func(fqdn string, qtype dnsmessage.Type) racer { responseFn = func(fqdn string, qtype dnsmessage.Type) result {
dnsWaitGroup.Add(1) dnsWaitGroup.Add(1)
defer dnsWaitGroup.Done() defer dnsWaitGroup.Done()
p, server, err := r.tryOneName(ctx, conf, fqdn, qtype) p, server, err := r.tryOneName(ctx, conf, fqdn, qtype)
return racer{p, server, err} return result{p, server, err}
} }
} else { } else {
queryFn = func(fqdn string, qtype dnsmessage.Type) { queryFn = func(fqdn string, qtype dnsmessage.Type) {
dnsWaitGroup.Add(1) dnsWaitGroup.Add(1)
go func(qtype dnsmessage.Type) { go func(qtype dnsmessage.Type) {
p, server, err := r.tryOneName(ctx, conf, fqdn, qtype) p, server, err := r.tryOneName(ctx, conf, fqdn, qtype)
lane <- racer{p, server, err} lane <- result{p, server, err}
dnsWaitGroup.Done() dnsWaitGroup.Done()
}(qtype) }(qtype)
} }
responseFn = func(fqdn string, qtype dnsmessage.Type) racer { responseFn = func(fqdn string, qtype dnsmessage.Type) result {
return <-lane return <-lane
} }
} }
@ -606,15 +606,15 @@ func (r *Resolver) goLookupIPCNAMEOrder(ctx context.Context, name string, order
} }
hitStrictError := false hitStrictError := false
for _, qtype := range qtypes { for _, qtype := range qtypes {
racer := responseFn(fqdn, qtype) result := responseFn(fqdn, qtype)
if racer.error != nil { if result.error != nil {
if nerr, ok := racer.error.(Error); ok && nerr.Temporary() && r.strictErrors() { if nerr, ok := result.error.(Error); ok && nerr.Temporary() && r.strictErrors() {
// This error will abort the nameList loop. // This error will abort the nameList loop.
hitStrictError = true hitStrictError = true
lastErr = racer.error lastErr = result.error
} else if lastErr == nil || fqdn == name+"." { } else if lastErr == nil || fqdn == name+"." {
// Prefer error for original name. // Prefer error for original name.
lastErr = racer.error lastErr = result.error
} }
continue continue
} }
@ -636,12 +636,12 @@ func (r *Resolver) goLookupIPCNAMEOrder(ctx context.Context, name string, order
loop: loop:
for { for {
h, err := racer.p.AnswerHeader() h, err := result.p.AnswerHeader()
if err != nil && err != dnsmessage.ErrSectionDone { if err != nil && err != dnsmessage.ErrSectionDone {
lastErr = &DNSError{ lastErr = &DNSError{
Err: "cannot marshal DNS message", Err: "cannot marshal DNS message",
Name: name, Name: name,
Server: racer.server, Server: result.server,
} }
} }
if err != nil { if err != nil {
@ -649,35 +649,35 @@ func (r *Resolver) goLookupIPCNAMEOrder(ctx context.Context, name string, order
} }
switch h.Type { switch h.Type {
case dnsmessage.TypeA: case dnsmessage.TypeA:
a, err := racer.p.AResource() a, err := result.p.AResource()
if err != nil { if err != nil {
lastErr = &DNSError{ lastErr = &DNSError{
Err: "cannot marshal DNS message", Err: "cannot marshal DNS message",
Name: name, Name: name,
Server: racer.server, Server: result.server,
} }
break loop break loop
} }
addrs = append(addrs, IPAddr{IP: IP(a.A[:])}) addrs = append(addrs, IPAddr{IP: IP(a.A[:])})
case dnsmessage.TypeAAAA: case dnsmessage.TypeAAAA:
aaaa, err := racer.p.AAAAResource() aaaa, err := result.p.AAAAResource()
if err != nil { if err != nil {
lastErr = &DNSError{ lastErr = &DNSError{
Err: "cannot marshal DNS message", Err: "cannot marshal DNS message",
Name: name, Name: name,
Server: racer.server, Server: result.server,
} }
break loop break loop
} }
addrs = append(addrs, IPAddr{IP: IP(aaaa.AAAA[:])}) addrs = append(addrs, IPAddr{IP: IP(aaaa.AAAA[:])})
default: default:
if err := racer.p.SkipAnswer(); err != nil { if err := result.p.SkipAnswer(); err != nil {
lastErr = &DNSError{ lastErr = &DNSError{
Err: "cannot marshal DNS message", Err: "cannot marshal DNS message",
Name: name, Name: name,
Server: racer.server, Server: result.server,
} }
break loop break loop
} }