probe
probe copied to clipboard
cli: fallback to Psiphon when using OONI services are blocked
This issue is about improving the code that speaks to our backend (aka the probe services) to automatically fallback to using a Psiphon tunnel in case of failure. We'll close this issue when we can automatically fallback to Psiphon.
Roughly, we need the composition of two dialers, where the former is the normal dialer and the latter is a dialer that will use psiphon. The composition shall be sequential and the rule for switching to the psiphon dialer is whether the normal dialer fails. There needs also to be some sort of mechanism by which we disable falling back when we are already using a proxy.
This begs the question of where to implement this policy. It seems that probably the best place to do that is when we are constructing an HTTP transport (i.e. httptransport.New
).
This is problematic because we depend on probe-services to bootstrap Psiphon. I spent a bunch of time preparing for this solution to work, but then I realised that this issue is a blocker.
We decided that we are not focusing on this for now, because the circular dependency complicates the matter, and we are satisfied with cloud fronting already.
Raising priority. But we won't be able to work on this in Sprint 21: we need to finish the mobile-related parts of the rewrite in Go before it is possible for us to significantly move forward with this issue.
Postponing to next Sprint.