The command line package is now `tsunagi` and builds the `tsng` executable, which the packages, the unit, the installers and the workflows install and run. The core library package becomes `tsunagi-core`, keeping the library name `tsunagi`, so no code changes `use tsunagi::...`. Directories follow (crates/tsunagi-core, crates/tsunagi). Every command shown to a person is now `tsng ...`. Co-Authored-By: Claude <noreply@anthropic.com>
33 lines
1.4 KiB
Rust
33 lines
1.4 KiB
Rust
//! Exit-node host rules: what makes this device an exit node for others, and
|
|
//! what sends this device's own traffic through one.
|
|
//!
|
|
//! The packet side lives in [`super::router`]; this is the side the operating
|
|
//! system sees. It is kept apart from the broadcast rules, which have a
|
|
//! different lifetime and different tags.
|
|
|
|
/// How one set of host rules went.
|
|
#[derive(Debug, Clone, Default, PartialEq, Eq)]
|
|
pub struct RuleSetReport {
|
|
/// Whether every step took.
|
|
pub ok: bool,
|
|
/// One line: what is in place, or what is missing and why.
|
|
pub detail: String,
|
|
}
|
|
|
|
/// What the host rules of one network's exit-node settings are doing.
|
|
#[derive(Debug, Clone, Default, PartialEq, Eq)]
|
|
pub struct ExitRulesReport {
|
|
/// Masquerading and forwarding for members' traffic, when this agent
|
|
/// offers itself as an exit node here. `None` means none are wanted.
|
|
pub offer: Option<RuleSetReport>,
|
|
/// Whether the kernel forwards packets for the overlay interface.
|
|
///
|
|
/// `Some(false)` means the rules are in place but nothing passes until
|
|
/// forwarding is turned on, which the agent never does itself. `None`
|
|
/// when it could not be read.
|
|
pub forwarding: Option<bool>,
|
|
/// The routes that send this device's traffic through its exit node.
|
|
/// `None` means it uses none through this network.
|
|
pub client: Option<RuleSetReport>,
|
|
}
|