diff --git a/E2E/miniooni.bash b/E2E/miniooni.bash index 2388daa..fae08a8 100755 --- a/E2E/miniooni.bash +++ b/E2E/miniooni.bash @@ -6,21 +6,46 @@ # # Note: using --tunnel=psiphon assumes that we have been compiling # miniooni with builtin support for psiphon. +# +# Note about cloudfront: as of 2022-10-08, dvp6h0xblpcqp.cloudfront.net +# and dkyhjv0wpi2dk.cloudfront.net front distinct aliases of the +# same backend host (backend-fsn.ooni.org). We can use either addr +# and the result should be the same. So, let us test that. set -euxo pipefail -backends=() -backends+=( "https://api.ooni.io" ) -backends+=( "https://dvp6h0xblpcqp.cloudfront.net" ) -backends+=( "https://ams-pg-test.ooni.org" ) +rm -f E2E/o.jsonl miniooni="${1:-./miniooni}" -for ps in ${backends[@]}; do - opt="-o E2E/o.jsonl --probe-services=$ps" - $miniooni --yes $opt -i http://mail.google.com web_connectivity -done -$miniooni --tunnel=psiphon --yes -i http://mail.google.com web_connectivity -$miniooni --tunnel=tor --yes -i http://mail.google.com web_connectivity +$miniooni --yes -o E2E/o.jsonl \ + --probe-services=https://api.ooni.io/ \ + --tunnel=none \ + web_connectivity -i https://mail.google.com/robots.txt -#go run ./internal/cmd/e2epostprocess -expected 5 # TODO(bassosimone): fix this +$miniooni --yes -o E2E/o.jsonl \ + --probe-services=https://dvp6h0xblpcqp.cloudfront.net/ \ + --tunnel=none \ + web_connectivity -i https://mail.google.com/robots.txt + +$miniooni --yes -o E2E/o.jsonl \ + --probe-services=https://dkyhjv0wpi2dk.cloudfront.net/ \ + --tunnel=none \ + web_connectivity -i https://mail.google.com/robots.txt + +$miniooni --yes -o E2E/o.jsonl \ + --probe-services=https://api.ooni.io/ \ + --tunnel=tor \ + web_connectivity -i https://mail.google.com/robots.txt + +$miniooni --yes -o E2E/o.jsonl \ + --probe-services=https://api.ooni.io/ \ + --tunnel=psiphon \ + web_connectivity -i https://mail.google.com/robots.txt + +$miniooni --yes -o E2E/o.jsonl \ + --probe-services=https://api.ooni.io/ \ + --tunnel=torsf \ + web_connectivity -i https://mail.google.com/robots.txt + +go run ./internal/cmd/e2epostprocess -expected 6 -backend https://api.ooni.io/ diff --git a/internal/cmd/apitool/main.go b/internal/cmd/apitool/main.go index 315ddf6..1cb3b62 100644 --- a/internal/cmd/apitool/main.go +++ b/internal/cmd/apitool/main.go @@ -29,7 +29,7 @@ func newclient() probeservices.Client { ua := fmt.Sprintf("apitool/%s ooniprobe-engine/%s", version.Version, version.Version) return probeservices.Client{ APIClientTemplate: httpx.APIClientTemplate{ - BaseURL: "https://api.ooni.io/", + BaseURL: *backend, HTTPClient: &http.Client{Transport: txp}, Logger: log.Log, UserAgent: ua, @@ -50,6 +50,7 @@ func fatalOnError(err error, message string) { } var ( + backend = flag.String("backend", "https://api.ooni.io/", "Backend to use") debug = flag.Bool("v", false, "Enable verbose mode") input = flag.String("input", "", "Input of the measurement") mode = flag.String("mode", "", "One of: check, meta, raw") diff --git a/internal/cmd/e2epostprocess/main.go b/internal/cmd/e2epostprocess/main.go index c6c40d3..4f857a5 100644 --- a/internal/cmd/e2epostprocess/main.go +++ b/internal/cmd/e2epostprocess/main.go @@ -27,6 +27,7 @@ type Measurement struct { } func main() { + backend := flag.String("backend", "https://api.ooni.io/", "Backend to use") expected := flag.Int("expected", 0, "Expected number of measurement files") flag.Parse() if *expected <= 0 { @@ -61,6 +62,7 @@ func main() { options := []string{ "run", "./internal/cmd/apitool", + "-backend", *backend, "-mode", "meta", "-report-id", entry.ReportID, } diff --git a/internal/engine/session.go b/internal/engine/session.go index 00db166..64c76f7 100644 --- a/internal/engine/session.go +++ b/internal/engine/session.go @@ -193,6 +193,8 @@ func NewSession(ctx context.Context, config SessionConfig) (*Session, error) { config.Logger.Infof("tunnel '%s' running...", proxyURL.Scheme) sess.tunnel = tunnel proxyURL = tunnel.SOCKS5ProxyURL() + case "none": + proxyURL = nil // explicit way of saying we don't want to use a tunnel } } sess.proxyURL = proxyURL