cleanup(netx): stop using most netxlite resolver internals (#797)
This diff modifies netx to stop using most netxlite resolver internals but the internal function that creates a new, unwrapped system resolver, which will be dealt with in a subsequent pull request. See https://github.com/ooni/probe/issues/2121
This commit is contained in:
parent
07c0b08505
commit
2d3d5d9cdc
5 changed files with 18 additions and 243 deletions
|
|
@ -16,6 +16,12 @@ import (
|
|||
|
||||
// BogonResolver is a bogon aware resolver. When a bogon is encountered in
|
||||
// a reply, this resolver will return ErrDNSBogon.
|
||||
//
|
||||
// This resolver is not part of the default chain created by WrapResolver
|
||||
// therefore it returns errors that have already been wrapped.
|
||||
//
|
||||
// BUG: This resolver currently only implements LookupHost. All the other
|
||||
// lookup methods will always return ErrNoDNSTransport.
|
||||
type BogonResolver struct {
|
||||
Resolver model.Resolver
|
||||
}
|
||||
|
|
@ -26,11 +32,12 @@ var _ model.Resolver = &BogonResolver{}
|
|||
func (r *BogonResolver) LookupHost(ctx context.Context, hostname string) ([]string, error) {
|
||||
addrs, err := r.Resolver.LookupHost(ctx, hostname)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, err // not our responsibility to wrap this error
|
||||
}
|
||||
for _, addr := range addrs {
|
||||
if IsBogon(addr) {
|
||||
return nil, ErrDNSBogon
|
||||
// wrap ErrDNSBogon as documented
|
||||
return nil, newErrWrapper(classifyResolverError, ResolveOperation, ErrDNSBogon)
|
||||
}
|
||||
}
|
||||
return addrs, nil
|
||||
|
|
|
|||
Loading…
Reference in a new issue