Skip to content

Commit

Permalink
deploy: 701f788
Browse files Browse the repository at this point in the history
  • Loading branch information
pospeselr committed May 26, 2024
1 parent 4faec1c commit e4eb8bf
Show file tree
Hide file tree
Showing 27 changed files with 121 additions and 92 deletions.
2 changes: 1 addition & 1 deletion coverage.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion crates/search-index.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions crates/src/gosling/context.rs.html
Original file line number Diff line number Diff line change
Expand Up @@ -1160,7 +1160,7 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>
<span class="comment">// open tcp stream to remove ident server
</span><span class="kw">let </span>stream: TcpStream = <span class="self">self
</span>.tor_provider
.connect(<span class="kw-2">&amp;</span>identity_server_id, <span class="self">self</span>.identity_port, <span class="prelude-val">None</span>)<span class="question-mark">?
.connect((identity_server_id.clone(), <span class="self">self</span>.identity_port).into(), <span class="prelude-val">None</span>)<span class="question-mark">?
</span>.into();
stream.set_nonblocking(<span class="bool-val">true</span>)<span class="question-mark">?</span>;
<span class="kw">let </span><span class="kw-2">mut </span>client_rpc = Session::new(stream);
Expand Down Expand Up @@ -1301,7 +1301,7 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>
.add_client_auth(<span class="kw-2">&amp;</span>endpoint_server_id, <span class="kw-2">&amp;</span>client_auth_key)<span class="question-mark">?</span>;
<span class="kw">let </span>stream: TcpStream = <span class="self">self
</span>.tor_provider
.connect(<span class="kw-2">&amp;</span>endpoint_server_id, <span class="self">self</span>.endpoint_port, <span class="prelude-val">None</span>)<span class="question-mark">?
.connect((endpoint_server_id.clone(), <span class="self">self</span>.endpoint_port).into(), <span class="prelude-val">None</span>)<span class="question-mark">?
</span>.into();
stream.set_nonblocking(<span class="bool-val">true</span>)<span class="question-mark">?</span>;

Expand Down
26 changes: 17 additions & 9 deletions crates/src/tor_interface/arti_client_tor_client.rs.html
Original file line number Diff line number Diff line change
Expand Up @@ -529,6 +529,10 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>
<a href="#527" id="527">527</a>
<a href="#528" id="528">528</a>
<a href="#529" id="529">529</a>
<a href="#530" id="530">530</a>
<a href="#531" id="531">531</a>
<a href="#532" id="532">532</a>
<a href="#533" id="533">533</a>
</pre></div><pre class="rust"><code><span class="comment">// standard
</span><span class="kw">use </span>std::io::ErrorKind;
<span class="kw">use </span>std::net::{SocketAddr};
Expand All @@ -538,7 +542,7 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>
<span class="kw">use </span>std::sync::atomic::{AtomicBool, Ordering};

<span class="comment">//extern
</span><span class="kw">use </span>arti_client::{BootstrapBehavior, TorClient};
</span><span class="kw">use </span>arti_client::{BootstrapBehavior, DangerouslyIntoTorAddr, IntoTorAddr, TorClient};
<span class="kw">use </span>arti_client::config::{CfgPath, TorClientConfigBuilder};
<span class="kw">use </span>fs_mistrust::Mistrust;
<span class="kw">use </span>tokio::io::{AsyncReadExt, AsyncWriteExt};
Expand Down Expand Up @@ -586,6 +590,9 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>
<span class="attr">#[error(<span class="string">"arti-client error: {0}"</span>)]
</span>ArtiClientError(<span class="attr">#[source] </span>arti_client::Error),

<span class="attr">#[error(<span class="string">"arti-client tor-addr error: {0}"</span>)]
</span>ArtiClientTorAddrError(<span class="attr">#[source] </span>arti_client::TorAddrError),

<span class="attr">#[error(<span class="string">"tor-keymgr error: {0}"</span>)]
</span>TorKeyMgrError(<span class="attr">#[source] </span>tor_keymgr::Error),

Expand Down Expand Up @@ -829,8 +836,7 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>

<span class="kw">fn </span>connect(
<span class="kw-2">&amp;mut </span><span class="self">self</span>,
service_id: <span class="kw-2">&amp;</span>V3OnionServiceId,
virt_port: u16,
target: TargetAddr,
circuit: <span class="prelude-ty">Option</span>&lt;CircuitToken&gt;,
) -&gt; <span class="prelude-ty">Result</span>&lt;OnionStream, tor_provider::Error&gt; {

Expand All @@ -840,10 +846,15 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>
}

<span class="comment">// connect to onion service
</span><span class="kw">let </span>target = (<span class="macro">format!</span>(<span class="string">"{}.onion"</span>, service_id), virt_port);
</span><span class="kw">let </span>arti_target = <span class="kw">match </span>target.clone() {
TargetAddr::Ip(socket_addr) =&gt; socket_addr.into_tor_addr_dangerously(),
TargetAddr::Domain(domain, port) =&gt; (domain, port).into_tor_addr(),
TargetAddr::OnionService(OnionAddr::V3(OnionAddrV3{service_id, virt_port})) =&gt; (<span class="macro">format!</span>(<span class="string">"{}.onion"</span>, service_id), virt_port).into_tor_addr(),
}.map_err(Error::ArtiClientTorAddrError)<span class="question-mark">?</span>;

<span class="kw">let </span>arti_client = <span class="self">self</span>.arti_client.clone();
<span class="kw">let </span>data_stream = <span class="self">self</span>.tokio_runtime.block_on(<span class="kw">async move </span>{
arti_client.connect(target).<span class="kw">await
arti_client.connect(arti_target).<span class="kw">await
</span>}).map_err(Error::ArtiClientError)<span class="question-mark">?</span>;

<span class="comment">// start a task to forward traffic from returned data stream
Expand Down Expand Up @@ -884,10 +895,7 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>
<span class="prelude-val">Ok</span>(OnionStream {
stream,
local_addr: <span class="prelude-val">None</span>,
peer_addr: <span class="prelude-val">Some</span>(TargetAddr::OnionService(OnionAddr::V3(OnionAddrV3::new(
service_id.clone(),
virt_port,
)))),
peer_addr: <span class="prelude-val">Some</span>(target),
})
}

Expand Down
22 changes: 12 additions & 10 deletions crates/src/tor_interface/legacy_tor_client.rs.html
Original file line number Diff line number Diff line change
Expand Up @@ -452,6 +452,7 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>
<a href="#450" id="450">450</a>
<a href="#451" id="451">451</a>
<a href="#452" id="452">452</a>
<a href="#453" id="453">453</a>
</pre></div><pre class="rust"><code><span class="comment">// standard
</span><span class="kw">use </span>std::boxed::Box;
<span class="kw">use </span>std::collections::BTreeMap;
Expand Down Expand Up @@ -789,8 +790,7 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>
<span class="comment">// connect to an onion service and returns OnionStream
</span><span class="kw">fn </span>connect(
<span class="kw-2">&amp;mut </span><span class="self">self</span>,
service_id: <span class="kw-2">&amp;</span>V3OnionServiceId,
virt_port: u16,
target: TargetAddr,
circuit: <span class="prelude-ty">Option</span>&lt;CircuitToken&gt;,
) -&gt; <span class="prelude-ty">Result</span>&lt;OnionStream, tor_provider::Error&gt; {
<span class="kw">if </span><span class="self">self</span>.socks_listener.is_none() {
Expand All @@ -809,16 +809,21 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>
<span class="prelude-val">None </span>=&gt; <span class="macro">unreachable!</span>(),
};

<span class="comment">// our onion domain
</span><span class="kw">let </span>target = socks::TargetAddr::Domain(<span class="macro">format!</span>(<span class="string">"{}.onion"</span>, service_id), virt_port);
<span class="comment">// our target
</span><span class="kw">let </span>socks_target = <span class="kw">match </span>target.clone() {
TargetAddr::Ip(socket_addr) =&gt; socks::TargetAddr::Ip(socket_addr),
TargetAddr::Domain(domain, port) =&gt; socks::TargetAddr::Domain(domain, port),
TargetAddr::OnionService(OnionAddr::V3(OnionAddrV3{service_id, virt_port})) =&gt; socks::TargetAddr::Domain(<span class="macro">format!</span>(<span class="string">"{}.onion"</span>, service_id), virt_port),
};

<span class="comment">// readwrite stream
</span><span class="kw">let </span>stream = <span class="kw">match </span><span class="kw-2">&amp;</span>circuit {
<span class="prelude-val">None </span>=&gt; Socks5Stream::connect(socks_listener, target),
<span class="prelude-val">None </span>=&gt; Socks5Stream::connect(socks_listener, socks_target),
<span class="prelude-val">Some</span>(circuit) =&gt; {
<span class="kw">if let </span><span class="prelude-val">Some</span>(circuit) = <span class="self">self</span>.circuit_tokens.get(circuit) {
Socks5Stream::connect_with_password(
socks_listener,
target,
socks_target,
<span class="kw-2">&amp;</span>circuit.username,
<span class="kw-2">&amp;</span>circuit.password,
)
Expand All @@ -832,10 +837,7 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>
<span class="prelude-val">Ok</span>(OnionStream {
stream: stream.into_inner(),
local_addr: <span class="prelude-val">None</span>,
peer_addr: <span class="prelude-val">Some</span>(TargetAddr::OnionService(OnionAddr::V3(OnionAddrV3::new(
service_id.clone(),
virt_port,
)))),
peer_addr: <span class="prelude-val">Some</span>(target),
})
}

Expand Down
20 changes: 16 additions & 4 deletions crates/src/tor_interface/mock_tor_client.rs.html
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,12 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>
<a href="#340" id="340">340</a>
<a href="#341" id="341">341</a>
<a href="#342" id="342">342</a>
<a href="#343" id="343">343</a>
<a href="#344" id="344">344</a>
<a href="#345" id="345">345</a>
<a href="#346" id="346">346</a>
<a href="#347" id="347">347</a>
<a href="#348" id="348">348</a>
</pre></div><pre class="rust"><code><span class="comment">// standard
</span><span class="kw">use </span>std::collections::BTreeMap;
<span class="kw">use </span>std::io::ErrorKind;
Expand Down Expand Up @@ -378,6 +384,9 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>

<span class="attr">#[error(<span class="string">"unable to get TCP listener's local adress"</span>)]
</span>TcpListenerLocalAddrFailed(<span class="attr">#[source] </span>std::io::Error),

<span class="attr">#[error(<span class="string">"not implemented"</span>)]
</span>NotImplemented(),
}

<span class="kw">impl </span>From&lt;Error&gt; <span class="kw">for </span><span class="kw">crate</span>::tor_provider::Error {
Expand Down Expand Up @@ -599,15 +608,18 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>

<span class="kw">fn </span>connect(
<span class="kw-2">&amp;mut </span><span class="self">self</span>,
service_id: <span class="kw-2">&amp;</span>V3OnionServiceId,
virt_port: u16,
target: TargetAddr,
_circuit: <span class="prelude-ty">Option</span>&lt;CircuitToken&gt;,
) -&gt; <span class="prelude-ty">Result</span>&lt;OnionStream, tor_provider::Error&gt; {
<span class="kw">let </span>client_auth = <span class="self">self</span>.client_auth_keys.get(service_id);
<span class="kw">let </span>(service_id, virt_port) = <span class="kw">match </span>target {
TargetAddr::OnionService(OnionAddr::V3(OnionAddrV3{service_id, virt_port})) =&gt; (service_id, virt_port),
<span class="kw">_ </span>=&gt; <span class="kw">return </span><span class="prelude-val">Err</span>(Error::NotImplemented().into()),
};
<span class="kw">let </span>client_auth = <span class="self">self</span>.client_auth_keys.get(<span class="kw-2">&amp;</span>service_id);

<span class="kw">match </span>MOCK_TOR_NETWORK.lock() {
<span class="prelude-val">Ok</span>(<span class="kw-2">mut </span>mock_tor_network) =&gt; {
<span class="prelude-val">Ok</span>(mock_tor_network.connect_to_onion(service_id, virt_port, client_auth)<span class="question-mark">?</span>)
<span class="prelude-val">Ok</span>(mock_tor_network.connect_to_onion(<span class="kw-2">&amp;</span>service_id, virt_port, client_auth)<span class="question-mark">?</span>)
}
<span class="prelude-val">Err</span>(<span class="kw">_</span>) =&gt; <span class="macro">unreachable!</span>(<span class="string">"another thread panicked while holding mock tor network's lock"</span>),
}
Expand Down
18 changes: 14 additions & 4 deletions crates/src/tor_interface/tor_provider.rs.html
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,11 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>
<a href="#186" id="186">186</a>
<a href="#187" id="187">187</a>
<a href="#188" id="188">188</a>
<a href="#189" id="189">189</a>
<a href="#190" id="190">190</a>
<a href="#191" id="191">191</a>
<a href="#192" id="192">192</a>
<a href="#193" id="193">193</a>
</pre></div><pre class="rust"><code><span class="comment">// standard
</span><span class="kw">use </span>std::boxed::Box;
<span class="kw">use </span>std::io::{Read, Write};
Expand All @@ -199,8 +204,8 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>

<span class="attr">#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
</span><span class="kw">pub struct </span>OnionAddrV3 {
service_id: V3OnionServiceId,
virt_port: u16,
<span class="kw">pub</span>(<span class="kw">crate</span>) service_id: V3OnionServiceId,
<span class="kw">pub</span>(<span class="kw">crate</span>) virt_port: u16,
}

<span class="kw">impl </span>OnionAddrV3 {
Expand Down Expand Up @@ -246,6 +251,12 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>
OnionService(OnionAddr),
}

<span class="kw">impl </span>From&lt;(V3OnionServiceId, u16)&gt; <span class="kw">for </span>TargetAddr {
<span class="kw">fn </span>from(target_tuple: (V3OnionServiceId, u16)) -&gt; <span class="self">Self </span>{
TargetAddr::OnionService(OnionAddr::V3(OnionAddrV3::new(target_tuple.<span class="number">0</span>, target_tuple.<span class="number">1</span>)))
}
}

<span class="attr">#[derive(Debug)]
</span><span class="kw">pub enum </span>TorEvent {
BootstrapStatus {
Expand Down Expand Up @@ -363,8 +374,7 @@ <h2>Files</h2></div></nav><div class="sidebar-resizer"></div>
<span class="kw">fn </span>remove_client_auth(<span class="kw-2">&amp;mut </span><span class="self">self</span>, service_id: <span class="kw-2">&amp;</span>V3OnionServiceId) -&gt; <span class="prelude-ty">Result</span>&lt;(), Error&gt;;
<span class="kw">fn </span>connect(
<span class="kw-2">&amp;mut </span><span class="self">self</span>,
service_id: <span class="kw-2">&amp;</span>V3OnionServiceId,
virt_port: u16,
target: TargetAddr,
circuit: <span class="prelude-ty">Option</span>&lt;CircuitToken&gt;,
) -&gt; <span class="prelude-ty">Result</span>&lt;OnionStream, Error&gt;;
<span class="kw">fn </span>listener(
Expand Down
Loading

0 comments on commit e4eb8bf

Please sign in to comment.