configure_tor

Function configure_tor 

Source
pub async fn configure_tor(
    controller: &mut Controller,
    state: &VanguardState,
    config: &Config,
) -> Result<()>
Expand description

Configures Tor with the current vanguard settings.

Sets Tor configuration options to enforce the vanguard guard layers. This function is called after vanguard state is updated to apply the new guard sets to Tor.

§Configuration Options Set

OptionDescriptionCondition
NumEntryGuardsNumber of layer 1 guardsIf > 0
NumDirectoryGuardsNumber of directory guardsIf > 0
GuardLifetimeLayer 1 guard lifetimeIf > 0 days
HSLayer2NodesLayer 2 guard fingerprintsAlways
HSLayer3NodesLayer 3 guard fingerprintsIf num_layer3 > 0

§Arguments

  • controller - The Tor controller
  • state - The current vanguard state containing guard sets
  • config - The vanguards configuration

§Returns

Returns Ok(()) on successful configuration.

§Errors

Returns Error::Control if Tor configuration fails. This typically indicates an incompatible Tor version (requires 0.3.3.x or newer).

§Tor Version Requirements

  • HSLayer2Nodes: Requires Tor 0.3.3.0+
  • HSLayer3Nodes: Requires Tor 0.3.3.0+

§Example

use stem_rs::controller::Controller;
use vanguards_rs::vanguards::VanguardState;
use vanguards_rs::config::Config;
use vanguards_rs::control::configure_tor;

let mut controller = Controller::from_port("127.0.0.1:9051".parse().unwrap()).await?;
controller.authenticate(None).await?;

let state = VanguardState::new("/tmp/vanguards.state");
let config = Config::default();

configure_tor(&mut controller, &state, &config).await?;

§See Also