ooni-probe-cli/internal/engine/tunnel
Simone Basso a849213b59
fix(engine): break circular dep betwen session and tunnel (#295)
This diff breaks the circular dependency between session and
tunnel, by introducing the concept of early session.

An early session is a session that is able to fetch the psiphon
configuration file _only_ if it's embedded in the binary.

This breaks `miniooni --tunnel=psiphon` for users who have
access to the OONI backend. They are not the users we are
writing this feature for, though, so I think this is reasonable.

At the same time, this opens up the possibility of creating
a psiphon tunnel when constructing a session, which is the
approach I was following in https://github.com/ooni/probe-cli/pull/286.

This work is part of https://github.com/ooni/probe/issues/985.

Once this diff is in, I can land https://github.com/ooni/probe-cli/pull/286.
2021-04-05 12:02:35 +02:00
..
testdata feat(tunnel): introduce persistent tunnel state dir (#294) 2021-04-05 11:27:41 +02:00
config.go fix(engine): break circular dep betwen session and tunnel (#295) 2021-04-05 12:02:35 +02:00
integration_test.go feat(tunnel): introduce persistent tunnel state dir (#294) 2021-04-05 11:27:41 +02:00
psiphon_test.go feat(tunnel): introduce persistent tunnel state dir (#294) 2021-04-05 11:27:41 +02:00
psiphon.go feat(tunnel): introduce persistent tunnel state dir (#294) 2021-04-05 11:27:41 +02:00
tor_test.go feat(tunnel): introduce persistent tunnel state dir (#294) 2021-04-05 11:27:41 +02:00
tor.go feat(tunnel): introduce persistent tunnel state dir (#294) 2021-04-05 11:27:41 +02:00
tunnel_test.go feat(tunnel): introduce persistent tunnel state dir (#294) 2021-04-05 11:27:41 +02:00
tunnel.go feat(tunnel): introduce persistent tunnel state dir (#294) 2021-04-05 11:27:41 +02:00