<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-circmgr/src/usage.rs, branch arti-v1.6.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.6.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.6.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2025-08-07T15:28:36Z</updated>
<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>Update code for Edition 2024</title>
<updated>2025-08-07T15:28:31Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-08-07T12:44:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0453fb4be8cf618b94230812957ce1db1afe74bd'/>
<id>urn:sha1:0453fb4be8cf618b94230812957ce1db1afe74bd</id>
<content type='text'>
1. Run cargo fix --edition

2. Selectively revert the "if let"-&gt;"match" changes.
   These changes are meant to protect us from the lifetime changes
   for "if let" bindings in Rust 2024.
   But we're not actually relying on the old lifetime rules
   anywhere, and the match syntax here is quite ugly.

3. Automatically revert `$pat:expr_2021` to `$pat:expr`.
   (We don't actually want to restrict the expression syntax
   that our macros accept).
   Done with
   `git grep -l expr_2021 | xargs perl -i -pe 's/expr_2021/expr/g;'`

4. Run cargo fmt.
</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>circmgr: Propagate Option&lt;HsCircKind&gt; down to path selection functions</title>
<updated>2025-05-20T19:22:08Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-05-20T14:37:03Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5527ff8949600d05442daf667fa314a9eeb5ddf2'/>
<id>urn:sha1:5527ff8949600d05442daf667fa314a9eeb5ddf2</id>
<content type='text'>
We'll need this in order to build paths that are specifically
for client rend circuits.  I thought of using a boolean here,
but that had potential to get ugly in the future.
</content>
</entry>
<entry>
<title>tor-circmgr: Post-renaming documentation fixes.</title>
<updated>2024-10-24T14:04:43Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-09-11T16:09:50Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1c88c0b6984d797b8001b14a4f780994d86f8765'/>
<id>urn:sha1:1c88c0b6984d797b8001b14a4f780994d86f8765</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-circmgr: s/stub/stem throughout.</title>
<updated>2024-10-24T14:04:43Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-09-11T16:03:09Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=37c8c4c4f5486402d23d7f80726a943030218f6a'/>
<id>urn:sha1:37c8c4c4f5486402d23d7f80726a943030218f6a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-circmgr: s/HsCircStubKind/HsCircStemKind.</title>
<updated>2024-10-24T14:04:43Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-09-11T15:55:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a78585a8a97ae197dd2f038dab0970b5bed99a25'/>
<id>urn:sha1:a78585a8a97ae197dd2f038dab0970b5bed99a25</id>
<content type='text'>
As per #1479
</content>
</entry>
<entry>
<title>tor-circmgr: Remove AbstractSpec and FakeSpec.</title>
<updated>2024-09-16T14:57:33Z</updated>
<author>
<name>Wesley Aptekar-Cassels</name>
<email>me@wesleyac.com</email>
</author>
<published>2024-09-11T17:36:31Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a7d7933ffe86dd0f85f58f219860cd3e576aafdf'/>
<id>urn:sha1:a7d7933ffe86dd0f85f58f219860cd3e576aafdf</id>
<content type='text'>
AbstractSpec and FakeSpec actually make testing more difficult, since
they prevent using FakeBuilder in code that relies on the concrete
TargetCircUsage and SupportedCircUsage types. Removing them means
FakeBuilder can be used in more places, and also means that the test
code is closer to the real code, since TargetCircUsage and
SupportedCircUsage are now exercised directly in more tests.

This did require making one change to a test, which I think was
previously testing behaviour that was true for FakeSpec but not for the
real code:

The mgr::test::isolated test previously asserted that, in the case where
three circuits were requested, two with isolation and one without, the
non-isolated circuit would be shared with one of the isolated circuits.

This was allowed by the FakeSpec::supports function. However, in the
actual code, the path is as follows:

* AbstractCircMgr::get_or_launch
* AbstractCircMgr::prepare_action
* CircList::find_open
* AbstractSpec::find_supported
* abstract_spec_find_supported
* OpenEntry::supports
* SupportedCircUsage::supports
* StreamIsolation::compatible_same_type

StreamIsolation::compatible_same_type checks owner_type, which is
always zero for non-isolated streams and always non-zero for isolated
streams, meaning that a isolated stream will never be compatible with a
non-isolated stream. The seems like desirable behaviour, so I simply
modified the test to make four connections, two isolated and two not,
and checked that the isolated streams never share any circuits, and that
the two non-isolated streams use the same circuit. As far as I can tell,
this is the intended behaviour in the existing code.
</content>
</entry>
<entry>
<title>tor-netdir: Allow access to the `ConsensusBuilder` when building test netdirs.</title>
<updated>2024-09-09T17:26:37Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-09-05T15:42:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b2b75302ab095bccdc7ccecb627e4648a3ae9419'/>
<id>urn:sha1:b2b75302ab095bccdc7ccecb627e4648a3ae9419</id>
<content type='text'>
This allows us to set SRVs for example (needed because by default, the
test `NetDir` is built from a consensus that doesn't contain any SRVs).
</content>
</entry>
<entry>
<title>tor-circmgr: make `GuardMgr` mandatory</title>
<updated>2024-08-13T00:21:53Z</updated>
<author>
<name>Steven Engler</name>
<email>smengler3@gmail.com</email>
</author>
<published>2024-08-13T00:09:27Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=acf1e81bb8621ec322ebd56b89c47c28958d3bfb'/>
<id>urn:sha1:acf1e81bb8621ec322ebd56b89c47c28958d3bfb</id>
<content type='text'>
Functions that took `Option&lt;&amp;GuardMgr&gt;` now take only `&amp;GuardMgr`.

Three unit tests were removed that covered behaviour when no guard
manager was set.
</content>
</entry>
</feed>
