Skip to content

Make bootstrapping progress work properly (and refactor stopping a bit)

eta requested to merge eta/improved-bootstrap-etc into main
  • Arti's bootstrap event sender doesn't reliably report readiness (arti#799 (closed)), which makes the state of the VPN appear glitched when it's actually working.
  • To fix this, use the result of the TorClient::bootstrap function instead, and introduce a new sender to fake a 100% bootstrap status when this function returns.
  • We now send limited Blockage information, insofar as arti#800 (closed) doesn't yet let us determine the blockage kind.
  • The receiver passed into start_with_receiver is now a oneshot sender, instead of a broadcast one (the previous use of a broadcast channel wasn't actually necessary after refactoring the bootstrap status task to exit when the channel dies).
  • Also (mainly because this was found during testing), we no longer store an exit pointer in Java to stop the VPN, instead just using a mutex inside the Rust singleton.

closes #31 (closed)

Merge request reports