fix(geolocate): always use netxlite functionality (#976)
This change ensures that, in turn, we're able to "remote" all the traffic generated by the `geolocate` package, rather than missing some bits of it that were still using the standard library and caused _some_ geolocations to geolocate as the local host rather than as the remote host. Extracted from https://github.com/ooni/probe-cli/pull/969, where we tested this functionality. Closes https://github.com/ooni/probe/issues/1383 (which was long overdue). Part of https://github.com/ooni/probe/issues/2340, because it allows us to make progress with that.
This commit is contained in:
parent
86ffd6a0c4
commit
57a3919d2a
11 changed files with 93 additions and 32 deletions
|
|
@ -3,7 +3,8 @@ package geolocate
|
|||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"net"
|
||||
|
||||
"github.com/ooni/probe-cli/v3/internal/model"
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
@ -16,7 +17,9 @@ type dnsResolver interface {
|
|||
LookupHost(ctx context.Context, host string) (addrs []string, err error)
|
||||
}
|
||||
|
||||
type resolverLookupClient struct{}
|
||||
type resolverLookupClient struct {
|
||||
Resolver model.Resolver
|
||||
}
|
||||
|
||||
func (rlc resolverLookupClient) do(ctx context.Context, r dnsResolver) (string, error) {
|
||||
var ips []string
|
||||
|
|
@ -31,5 +34,5 @@ func (rlc resolverLookupClient) do(ctx context.Context, r dnsResolver) (string,
|
|||
}
|
||||
|
||||
func (rlc resolverLookupClient) LookupResolverIP(ctx context.Context) (ip string, err error) {
|
||||
return rlc.do(ctx, &net.Resolver{})
|
||||
return rlc.do(ctx, rlc.Resolver)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue