<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-circmgr/src/impls.rs, branch arti-v1.5.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.5.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.5.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2025-08-28T10:54:48Z</updated>
<entry>
<title>proto: Add a circuit module shared between client and relay impls.</title>
<updated>2025-08-28T10:54:48Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-08-26T17:48:56Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4ee5a4abcee895e79588888f6bc8eaa6963a6ba7'/>
<id>urn:sha1:4ee5a4abcee895e79588888f6bc8eaa6963a6ba7</id>
<content type='text'>
This is just code motion (I suggest reviewing with `--color-moved`).

This also moves the implementation-agnostic parts from
`tor_proto::client::circuit` to a new `tor_proto::circuit` module.
</content>
</entry>
<entry>
<title>Switch Cargo.toml files to edition 2024.</title>
<updated>2025-08-07T15:28:36Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-08-06T01:19:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=77b0de43b8c67cdb81befe0680a3df43b6ad37bc'/>
<id>urn:sha1:77b0de43b8c67cdb81befe0680a3df43b6ad37bc</id>
<content type='text'>
First, run

```
git grep -l "^edition =" |
    xargs perl -i -pe 's/^edition *=.*/edition = "2024"/;'
```

Second, manually verify that all Cargo.toml files have changed,
and nothing else has changed.

Third, run cargo fmt again.
</content>
</entry>
<entry>
<title>Do not fully-qualify Sync.</title>
<updated>2025-08-05T18:23:03Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-07-22T10:17:00Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=422a2545d1beff22c89e7f3ef4e8143ed23c0be7'/>
<id>urn:sha1:422a2545d1beff22c89e7f3ef4e8143ed23c0be7</id>
<content type='text'>
It's necessary and more verbose (and it's rather uncommon).
</content>
</entry>
<entry>
<title>proto: Fix infinite recursion in ClientTunnel::extend().</title>
<updated>2025-08-05T18:23:02Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-07-21T17:50:05Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d52c92023b89de097d247a7c2d8cc48c33ce13f5'/>
<id>urn:sha1:d52c92023b89de097d247a7c2d8cc48c33ce13f5</id>
<content type='text'>
`AbstractTunnel::extend()` was calling itself endlessly because there
was no `ClientTunnel::extend()` function to call.
</content>
</entry>
<entry>
<title>proto: abolish path_ref() in favor of all_paths().</title>
<updated>2025-08-05T18:23:02Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-07-18T17:28:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2610fe21fc394f4cdb6cd1a91ba9d2ad72aadb01'/>
<id>urn:sha1:2610fe21fc394f4cdb6cd1a91ba9d2ad72aadb01</id>
<content type='text'>
Until now, we've been using `ClientCirc::path_ref()` to get the *only*
path of a circuit. Now that `ClientCirc` is a handle to a tunnel reactor
(which may or may not be multi-path), we need to decide for each call
site of `path_ref()`, if we actually want *all* paths in the tunnel, or
if we expect the tunnel to be single-path and thus want the *only* path
in the tunnel.

I've added two new APIs to address this: `all_paths()`, for getting all
the paths in the tunnel, and `single_path()` for getting the only path
in the tunnel, or an error if the tunnel is single-path.
</content>
</entry>
<entry>
<title>circmgr: Return more type specific tunnel</title>
<updated>2025-08-05T18:23:02Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-07-01T15:10:44Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6df4f6bccc46dc6a0ec3dd9acff0660a98e235b8'/>
<id>urn:sha1:6df4f6bccc46dc6a0ec3dd9acff0660a98e235b8</id>
<content type='text'>
This is the first step towards making the circmgr return high level
tunnel types (wrappers around ClientTunnel).

Future commits will then modify each subsystems to use those specific
types. They are split in order to reduce complexity.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>tunnel: Implement Buildable for ClientTunnel</title>
<updated>2025-08-05T18:23:02Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-04-30T14:57:51Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=270d07037a782d6fc30eacc37568e1317294a8df'/>
<id>urn:sha1:270d07037a782d6fc30eacc37568e1317294a8df</id>
<content type='text'>
In order to pull this off, the Arc requirement needs to go away because
the Arc&lt;ClientCirc&gt; is now within the ClientTunnel.

This commit also has a rename of the CircuitBuilder to TunnelBuilder in
order to reflect the change that it now builds a ClientTunnel.

There is a slight rename in tor-proto as well just for accuracy.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>circmgr: Major rename for the new Tunnel namespace</title>
<updated>2025-08-05T18:23:02Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-03-12T17:45:22Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=07102a45aa030a62f1b3766d198ea3baa32807e9'/>
<id>urn:sha1:07102a45aa030a62f1b3766d198ea3baa32807e9</id>
<content type='text'>
The CircMgr will no longer yield circuits but tunnels (src/tunnel.rs).
This is a first step to rename most circuit related objects to use
"tunnel" instead.

Some "circuit" names have been kept for more precise definitions.

No behavior changes.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>tor-proto: Update the TunnelMutableState when a circuit is removed.</title>
<updated>2025-05-15T16:33:33Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-09T17:21:24Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=52c01e2e51206510ae6709a7c456d4af2ab466af'/>
<id>urn:sha1:52c01e2e51206510ae6709a7c456d4af2ab466af</id>
<content type='text'>
This is messy, because `ClientCirc::{path_ref, n_hops, ..}` become
fallible (we can't unwrap the result, because when a circuit is closed,
its state gets removed from the `TunnelSharedState`, but its
`ClientCirc` handle continues to exist, so any attempt to retrieve the
state will result in an `Err`).
</content>
</entry>
<entry>
<title>circmgr: Rename AbstractCirc::{extend_ntor =&gt; extend}</title>
<updated>2025-04-28T17:29:02Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-04-28T17:29:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5bdb18c8aa3dbb882197481b7142e2d198789e90'/>
<id>urn:sha1:5bdb18c8aa3dbb882197481b7142e2d198789e90</id>
<content type='text'>
We don't want to be thinking about ntor vs ntor3
in circmgr.
</content>
</entry>
</feed>
