aboutsummaryrefslogtreecommitdiffstats
path: root/src/transport/tor.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-10-30 15:24:41 +0100
committertv <tv@krebsco.de>2026-10-30 15:24:41 +0100
commit785d4f136da4ef556d29fc4f56258d7e6350b96b (patch)
tree157635d3264cd382e54cb36e1aff0e2e2d392c6b /src/transport/tor.rs
parente96d88715cdff7b62cc7976902337dce0ffd7ffa (diff)
allow dead Connection unless a transport needs it
Diffstat (limited to 'src/transport/tor.rs')
-rw-r--r--src/transport/tor.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/transport/tor.rs b/src/transport/tor.rs
index 39e0f31..2cf3249 100644
--- a/src/transport/tor.rs
+++ b/src/transport/tor.rs
@@ -544,6 +544,15 @@ impl Transport for TorTransport {
parse_location(target)
}
+ /// Direct while a connection to its onion service is open: an onion circuit, with no
+ /// relay of ours in between.
+ fn connection(&self, target: &str) -> Option<crate::transport::Connection> {
+ let location = parse_location(target)?;
+ lock(&self.shared.connections)
+ .contains_key(&location)
+ .then_some(crate::transport::Connection::Direct)
+ }
+
/// An onion service is its own transport identity: nothing to find out.
async fn resolve_seed(&self, seed: &str) -> Result<String> {
let location = parse_location(seed)