fix(oohelperd): reduce differences with legacy helper (#504)
Part of https://github.com/ooni/probe/issues/1707
This commit is contained in:
parent
3cb782f0a2
commit
985c1ba761
|
@ -28,5 +28,8 @@ type DNSConfig struct {
|
||||||
func DNSDo(ctx context.Context, config *DNSConfig) {
|
func DNSDo(ctx context.Context, config *DNSConfig) {
|
||||||
defer config.Wg.Done()
|
defer config.Wg.Done()
|
||||||
addrs, err := config.Resolver.LookupHost(ctx, config.Domain)
|
addrs, err := config.Resolver.LookupHost(ctx, config.Domain)
|
||||||
|
if addrs == nil {
|
||||||
|
addrs = []string{} // fix: the old test helper did that
|
||||||
|
}
|
||||||
config.Out <- CtrlDNSResult{Failure: newfailure(err), Addrs: addrs}
|
config.Out <- CtrlDNSResult{Failure: newfailure(err), Addrs: addrs}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,11 @@ func HTTPDo(ctx context.Context, config *HTTPConfig) {
|
||||||
defer config.Wg.Done()
|
defer config.Wg.Done()
|
||||||
req, err := http.NewRequestWithContext(ctx, "GET", config.URL, nil)
|
req, err := http.NewRequestWithContext(ctx, "GET", config.URL, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
config.Out <- CtrlHTTPResponse{Failure: newfailure(err)}
|
config.Out <- CtrlHTTPResponse{ // fix: emit -1 like the old test helper does
|
||||||
|
BodyLength: -1,
|
||||||
|
Failure: newfailure(err),
|
||||||
|
StatusCode: -1,
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// The original test helper failed with extra headers while here
|
// The original test helper failed with extra headers while here
|
||||||
|
@ -45,7 +49,11 @@ func HTTPDo(ctx context.Context, config *HTTPConfig) {
|
||||||
}
|
}
|
||||||
resp, err := config.Client.Do(req)
|
resp, err := config.Client.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
config.Out <- CtrlHTTPResponse{Failure: newfailure(err)}
|
config.Out <- CtrlHTTPResponse{ // fix: emit -1 like old test helper does
|
||||||
|
BodyLength: -1,
|
||||||
|
Failure: newfailure(err),
|
||||||
|
StatusCode: -1,
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
"github.com/ooni/probe-cli/v3/internal/cmd/oohelperd/internal/webconnectivity"
|
"github.com/ooni/probe-cli/v3/internal/cmd/oohelperd/internal/webconnectivity"
|
||||||
"github.com/ooni/probe-cli/v3/internal/cmd/oohelperd/internal/websteps"
|
"github.com/ooni/probe-cli/v3/internal/cmd/oohelperd/internal/websteps"
|
||||||
"github.com/ooni/probe-cli/v3/internal/engine/netx"
|
"github.com/ooni/probe-cli/v3/internal/engine/netx"
|
||||||
|
"github.com/ooni/probe-cli/v3/internal/runtimex"
|
||||||
)
|
)
|
||||||
|
|
||||||
const maxAcceptableBody = 1 << 24
|
const maxAcceptableBody = 1 << 24
|
||||||
|
@ -31,7 +32,10 @@ func init() {
|
||||||
dialer = netx.NewDialer(netx.Config{Logger: log.Log})
|
dialer = netx.NewDialer(netx.Config{Logger: log.Log})
|
||||||
txp := netx.NewHTTPTransport(netx.Config{Logger: log.Log})
|
txp := netx.NewHTTPTransport(netx.Config{Logger: log.Log})
|
||||||
httpx = &http.Client{Transport: txp}
|
httpx = &http.Client{Transport: txp}
|
||||||
resolver = netx.NewResolver(netx.Config{Logger: log.Log})
|
// fix: use 8.8.8.8:53/udp so we pin to a specific resolver.
|
||||||
|
var err error
|
||||||
|
resolver, err = netx.NewDNSClient(netx.Config{Logger: log.Log}, "udp://8.8.8.8:53")
|
||||||
|
runtimex.PanicOnError(err, "NewDNSClient failed")
|
||||||
}
|
}
|
||||||
|
|
||||||
func shutdown(srv *http.Server) {
|
func shutdown(srv *http.Server) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user